技術共有

Spring Web MVC の概要

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

このブログを読んだ後、何を学ぶことができますか?

  1. Spring Web MVC とは何かを理解する
  2. Spring MVCの学習方法
  3. 一般的な Spring Web MVC アノテーションを理解する

文章

Spring Web MVCとは何ですか?
  • タイトルを見ると、非常に聞き慣れない名詞がわかります。スプリングウェブMVC」と聞くと、とても高尚な言葉に聞こえますが、それは一体何なのでしょうか? 公式ドキュメントからの説明は次のとおりです。
    Spring Web MVC は、Servlet API に基づいて構築されたオリジナルの Web フレームワークであり、最初から Spring フレームワークに含まれています。正式名称「Spring Web MVC」はソースモジュールの名前 (Spring-webmvc) に由来していますが、SpringMVC と呼ばれることもよくあります。
  • 人間の言葉で言えば、理解できなくても問題ありません。Spring Web MVC は Web フレームワークです
    しかし、Spring MVC を真に理解するには、MVC とは何かを理解する必要があります。MVC は、ソフトウェア エンジニアリングにおけるソフトウェア アーキテクチャの設計パターンです。 、ビュー、およびコントローラーの 3 つの基本的な部分を次の図に示します。
    ここに画像の説明を挿入します
    これらの部分の定義を問い合わせることができます。
    • ビュー (ビュー) は、ブラウザーとの対話とアプリケーション内のデータの表示専用のリソースを指します。
    • モデルはアプリケーションの主要部分であり、プログラム内のデータ ロジックを処理するために使用されます。
    • コントローラーは、ビューからのリクエストを処理するためにどのモデルを使用する必要があるか、処理後にどのビューに戻る必要があるかを決定するために使用されるディスパッチャーとして理解できます。ビューとモデルを接続するためにすぐに使用できます

主なプロセスは次のとおりです。 View は、Controller にリクエストを送信します。この時点で、どのソリューション (ソリューション モデル) がリクエストを解決できるかを確認するための選択が Model に送信されます。モデルが処理された後、モデルはまず処理結果をコントローラーに返し、次にコントローラーは結果をビューに返します。これは MVC の主要なフレームワークであり、問​​題を解決するためのアイデアです。

たとえば、レストランに食事に行くと、
顧客が入店すると、ウェイターが顧客の注文を受け取りに来ます。顧客が食事を注文した後、顧客のメニューをフロントオフィスに渡し、フロントオフィスは顧客のメニューに基づいてキッチンに注文を出します。その後、メニューに従ってウェイターに、これがテーブル X のゲストの食事であると伝えます。
このプロセス中に
ウェイターは View で、顧客の受付、顧客の料理の注文のサポート、顧客への料理の提供を担当します。
フロントオフィスはコントローラーであり、ユーザーの注文状況に基づいてどのシェフに注文を与えるかを選択します。
バックキッチンはフロントオフィスの要望に合わせてお客様のダイニングニーズを満たすモデルです。

  • 要約すると、MVC はアーキテクチャ設計パターンおよびアイデアであり、Spring MVC は MVC アイデアの具体的な実装です。さらに、Spring MVC は Web フレームワークでもあります。
    要約すると、Spring MVC は MVC パターンを実装する Web フレームワークです。
    SpringBoot は SpringMVC の特定の実装であるため、作成するプロジェクトは通常 SpringBoot です。これは、一部の学生が作成したプロジェクトが SpringBoot である理由も説明します。 Spring Boot は多くの依存関係を追加でき、これらの依存関係を使用して Spring WebMVC フレームワークを追加することで Web 関数を実装します。
  • たとえば、キッチンは調理に使用できますが、実際の調理機能は、調理に関連するさまざまな材料とツールです。キッチンには、収納機能と装飾を実現するためのキャビネットを装備できます。数千年前、調理は火と食べ物で実現できましたが、Spring が MVC を実装したとき、独自のプロジェクトの特性も組み合わされました。

ここに画像の説明を挿入します

  • 上記の食べ物の注文の例に基づくと、主な変更点は、ウェイターに直接電話して食べ物を注文するのではなく、レストランに入り、フロントデスクで直接食べ物を注文できることです。
Spring MVCを学ぶにはどうすればよいですか?

Spring MVC とは何かを簡単に理解すると、Spring MVC の学習方法を予備的に理解できます。
Spring MVC を学習するとき、焦点はブラウザーを介してユーザー プログラムと対話する方法を学習することです。
大きく分けて以下の3つの側面に分けられます。

  1. 接続を確立する: ユーザー (ブラウザ) と Java プログラムを接続します。つまり、アドレスにアクセスすると Spring プログラムを呼び出すことができます。
  2. リクエスト: ユーザーはリクエストを行うときにいくつかのパラメータを持ち込むため、プログラムではパラメータを取得する方法を見つける必要があるため、リクエスト部分は主にパラメータを取得する機能です。
  3. 応答: ビジネス ロジックの実行後、プログラムの実行結果 (応答) をユーザーに返す必要があります。
一般的な Spring Web MVC アノテーション

最初に学ぶのは接続です。Spring MVC アノテーションは接続の重要な部分です。したがって、私のブログの枠組みの順序は、主要な内容を区別することができますが、それでも主要なテーマは密接に関連しています。冗談はやめて本題に入りましょう。

  • 1. Spring MVC で @RequestMapping を使用して、ブラウザ接続プログラムの役割である URL ルーティング マッピングを実装します。
    ここに画像の説明を挿入します
    実行後、ブラウザに URL http://127.0.0.1:8080/hello を入力します。
    効果がわかります。なぜこのサイトが大丈夫なのかというと、今は理解する必要はありませんが、将来勉強が深まると必ず理解できるようになります。
    効果はこんな感じ

ここに画像の説明を挿入します

  • 注: src/main/java/com.example.j20240711 ディレクトリにファイルを作成したことがわかります。よくある習慣として、通常のビジネス コードを src に記述し、テスト コードをテキストに記述します。私はIDEA2022.3.3のプロフェッショナル版を使用しているため、一部のページが異なる場合がありますが、大枠は同じです。実際、標準バージョンを使用して Spring を書くこともできますが、プラグインをインストールするのはさらに面倒です。トラブルを避けるためにプロフェッショナル バージョンを選択しました。プロバージョンも使用したい場合は、CSDN でチュートリアルを検索して、特定の Web サイトにアクセスして安価で購入できます。価格は非常に安いので、プロフェッショナル版を使用することもできます。
    @RequestMapping は、Spring Web MVC アプリケーションで最も一般的に使用されるアノテーションの 1 つであり、サービスがリクエストを受信したときに、パス /sayHi を持つリクエストが呼び出されるようにするために使用されます。このメソッドのコードはsayHiです。
    ルート マッピング: ユーザーが URL (Web サイトのアドレスとして理解できます) にアクセスするとき、ユーザーのリクエストをプログラム内の特定のクラスのメソッドにマッピングするプロセスをルート マッピングと呼びます。
    注意深い学生は、上記のアノテーションによって @RequestMapping と @RestController が削除されることがわかります。では、このアノテーションは何に使用されるのでしょうか。まずは彼を排除してみよう。
    ここに画像の説明を挿入します

404 が表示され、ページが見つからないことがわかります。

これが @RestController の動作です。
プロジェクトには多くのクラスがあり、各クラスには多くのメソッドがある場合があります。Spring プログラムはどのメソッドを実行するかをどのように判断するのでしょうか。
Spring はすべてのクラスをスキャンします。クラスに @RestController アノテーションが付けられている場合、Spring はこのクラスのメソッドのみを調べます。
@RequestMapping アノテーションを追加しましたか? もちろん、これ以外にも機能します。まずそれを使用して、後で詳しく説明します。

  • @RequestMapping の役割
    @RequestMapping はクラスとメソッドの両方を変更できます。クラスとメソッドを変更する場合、アクセスされるアドレスはクラス パス + メソッド パスになります。
    @RequestMapping はクラスを識別します。マッピングリクエストのリクエストパスの初期情報を設定します。
    @RequestMapping はメソッドを識別します: マッピング リクエストのリクエスト パスの特定の情報を設定します。
package com.example.j20240711;
//这两个包都是你人为加入注解自动导入的,不用过于关注
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RequestMapping("auto")//这是类路径
@RestController
public class TextApplication {
    @RequestMapping("hello")//这是方法路径
    //这里的方法名不一定非得是hello,可以换成其他的。
    public String hello(){
        return "hello";
    }
}
//因此我们访问的时候,使用的网址应该是:http://127.0.0.1:8080/auto/hello
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 知らせ:
    @RequestMapping の URL パスの前に / (スラッシュ) を付けるかどうかは Spring プログラムの起動時に判断され、先頭に / がない場合は Spring が判断します。
    通常、追加する URL パス / @RequestMapping は、最終的にアクセスされるときも、次のようなクラス パス + メソッド パスのままである可​​能性があります。
    ,
    上記では主に 2 つのアノテーションを紹介しましたが、実はまだ @RequestMapping について説明していません。
    まず質問させてください。このアノテーションが get または post をサポートしているかどうかを知りたい場合はどうすればよいでしょうか。
    このとき、データを送信するためのフロントエンドコードを記述し、それが get または post をサポートしているかどうかを確認する必要があります。しかし、純粋なバックエンドの人にとっては、この時点ではフロントエンドコードの書き方がわかりません。今回はPostmanというソフトの効果が反映されており、次回はその使い方についてお話します。
    次号のプレビュー: Postman の主な使用法と、Spring MVC 学習の 2 番目の重要なポイントであるリクエストについて説明します。