English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Spring MVCチュートリアル

Spring MVCはJavaフレームワークであり、Webアプリケーションの構築に使用されます。それはModel-View-Controllerデザインパターンを使用します。それはコントロールの逆転や依存注入などのすべての基本的なSpringフレームワーク機能を実現します。

Spring MVCは DispatcherServlet Springフレームワーク内でMVCを使用するための洗練された解決策を提供します。ここでは、 DispatcherServlet クラスであり、受入リクエストを受け入れ、それを正しいリソース(例えばコントローラー、モデル、ビュー)にマッピングするために使用されます。

Spring Web Model-View-Controller

Model-モデルにはアプリケーションのデータが含まれています。データは単一のオブジェクトまたはオブジェクトのコレクションです。 Controller-コントローラーにはアプリケーションのビジネスロジックが含まれています。ここでは、@Controllerアノテーションがクラスをコントローラーとしてマークするために使用されます。 View-ビューは提供された情報を特定の形式で表現します。通常、JSP + JSTLはビューページの作成に使用されます。springは、例えばApache Velocity、Thymeleaf、FreeMarkerなどの他のビューテクノロジーもサポートしています。 Front Controller-Spring Web MVCでは、DispatcherServletクラスがフロントコントローラーとして使用されます。それはSpring MVCアプリケーションの流れを管理する責任があります。


Spring Web MVCの流れを理解する

図に示されるように、すべての入力リクエストはフロントコントローラーのDispatcherServletによってインターセプトされます。 DispatcherServletはXMLファイルから処理プログラムのマッピングエントリを取得し、リクエストをコントローラーに転送します。 コントローラーはModelAndViewオブジェクトを返します。 DispatcherServletは、XMLファイル内のビューレゾルバーエントリをチェックし、指定されたビューコンポーネントを呼び出します。


Spring MVC Frameworkの利点

Spring MVC Frameworkのいくつかの利点を見てみましょう: -

役割の分離-Spring MVCは、モデルオブジェクト、コントローラー、コマンドオブジェクト、ビューレゾルバー、DispatcherServlet、バリデーターなど、各役割を分離し、それぞれの役割を専門のオブジェクトで実現できます。 軽量-軽量なservletコンテナを使用して、アプリケーションの開発とデプロイを行います。 強力な設定-フレームワークとアプリケーションクラスに信頼性の高い設定を提供し、Webコントローラーからビジネスオブジェクトやバリデーターへの横断的な参照を簡単に実現します。 迅速な開発-Spring MVCは、迅速な並行開発を促進します。 再利用可能なビジネスコード-新しいオブジェクトを作成する必要がなく、既存のビジネスオブジェクトを使用できます。 テストが簡単-Springでは、通常JavaBeansクラスを作成し、setterメソッドを使用してテストデータを注入できます。 柔軟なマッピング-ページを簡単にリダイレクトする特定のアノテーションを提供します。


Spring Web MVCフレームワークの例

Spring Web MVCフレームワークの簡単な例を見てみましょう。以下の手順です:

Mavenでspring jarファイルをロードするか、依存関係を追加します コントローラークラスを作成します web.xmlファイルでコントローラーのエントリを提供します 別のXMLファイルでbeanを定義します JSPページでメッセージを表示します サーバーを起動し、プロジェクトをデプロイします


Spring MVCのディレクトリ構造

MavenのSpring MVCのディレクトリ構造を使用します


必要なJarファイルまたはMaven依存関係

このサンプルを実行するには、以下をロードする必要があります:

Spring Core jarファイル Spring Web jarファイル JSP + JSTL jarファイル(他のビューテクノロジを使用する場合、対応するjarファイルをロードします)。

Springのすべてのjarファイルをダウンロードします。JSPとJSTLも含まれます。

Mavenを使用している場合、jarファイルを追加する必要はありません。今度は、pom.xmlファイルにMaven依存関係を追加する必要があります。

1、pom.xmlファイル内でプロジェクト情報と設定を提供します。

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/40.0.0 http://maven.apache.org/maven-maven.apache.org4maven
  v4_0_0.xsd">/<modelVersion>
  .0.0<3modelVersion>/<dependency>
  <groupId>com.w/artifactId>
  codebox/<artifactId>SpringMVC<
  <packaging>war<1-packaging>/version>
  <version>0.0./name>
  SNAPSHOT<//<name>SpringMVC Maven Webapp</<url>http:
  maven.apache.org<
    javax.servlet
      url>/<dependency>
      <dependencies>/artifactId>
      <version>3<artifactId>spring8<artifactId>spring1</version>
      <groupId>junit</<artifactId>junit<
    </dependency>
    
    <!-- .//.RELEASE</https:/<scope>test</spring-scope> -->
javax.servlet
    org.springframework/<dependency>
    webmvc-<groupId>org.springframework</artifactId>
    <version>5<artifactId>spring1<artifactId>spring1webmvc</version>
</dependency>
<!-- .//.RELEASE</https:/mvnrepository.com/mvnrepository.com-artifact -->
javax.servlet  
    api/<dependency>  
    <groupId>javax.servlet<-<artifactId>servlet/artifactId>  
    <version>3.0-alpha-1</version>  
</dependency>
  </dependencies>
  <build>
    <finalName>SpringMVC</finalName>
  </build>
</project>

2、コントローラークラスを作成する

コントローラークラスを作成するには、@Controllerと@RequestMappingの2つの注釈を使用します。

@Controller注釈でこのクラスをControllerとしてマークする。

@Requestmapping批注用いて指定されたURL名を持つクラスをマッピングする。

HelloController.java

package com.w3codebox;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping("/)))
  public String display()
  {
    return "index";
  } 
}

3、web.xmlファイルでコントローラーのエントリを提供します

このxmlファイルでは、ServletクラスDispatcherServletをSpring Web MVCのフロントコントローラーとして指定します。すべてのhtmlファイルのリクエストはDispatcherServletに転送されます。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVC</display-name>
   <servlet>  
    <servlet-name>spring</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>    
</servlet>  
<servlet-mapping>  
    <servlet-name>spring</servlet-name>  
    <url-pattern>/</url-pattern>  
</servlet-mapping>  
</web-app>

4、xmlファイルでbeanを定義します。

これは重要な設定ファイルであり、Viewコンポーネントを指定する必要があります。

context: component-scan要素はDispatcherServletの基本パッケージを定義しています。コントローラークラスを検索します。

このxmlファイルはWEB-INFディレクトリ内。

spring-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:mvc="http://www.springframework.org/schema/mvc"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context.xsd
      http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  <!-- コンポーネントスキャニングのサポートを提供 -->
  <context:component-scan base-package="com.w3codebox" />
  <!--変換、フォーマッティング、バリデーションのサポートを提供 -->
  <mvc:annotation-driven/>
</beans>

5、JSPページでメッセージを表示する

これはシンプルなJSPページで、コントローラーが返すメッセージを表示します。

index.jsp

<html>
<body>
<p>Welcome to Spring MVC Tutorial</p>
</body>
</html>

出力:



SpringMVC索引