Spring MVCの開発簡単なwebアプリケーション(一)

3239 ワード

Spring MVCの開発簡単なwebアプリケーション(一)
----------
 
依存の追加、プロファイルの作成
 
Spring MVCの重要な構成部分はDispatcherServiceletです.名前の通り、主に要求を対応するプロセッサに配布し、これらの要求を処理させる責任を負います.Webデプロイメント記述子で構成する必要がある唯一のサーブレットです.Spring MVCフレームワークのフロントエンドコントローラとして機能し、各Webリクエストはそれを通過しなければならないため、リクエスト処理プロセス全体を管理することができます.
WebリクエストがSpring MVCアプリケーションに送信されると、DispatcherSellvetはリクエストを受信し、SpringのWebアプリケーションコンテキストで構成された異なるコンポーネントを組織してこのリクエストを処理します.
 
1.依存の追加
Spring MVCでWebアプリケーションを開発するにはspring-webmvc.JArはWEB-INF/libディレクトリにコピーします.mavenプロジェクトなら
依存関係を追加するには、次のようにします.
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-webmvc</artifactId>
	<version>3.0.5.RELEASE</version>
</dependency>

 
 
2.プロファイルの作成
Spring MVCアプリケーションでは、Spring MVCフロントエンドコントローラとして機能するDispatcherServiceインスタンスを定義するだけでよい. 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xmlns/j2ee
		http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	
	<display-name>Court Reservation System</display-name>
	<servlet>
		<servlet-name>court</servlet-name>
		<servlet-class>
			org.springframewrok.web.servlet.DispatcherServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>court</servlet-name>
		<url-pattern>*.htm</url-pattern>
	</servlet-mapping>
</web-app>

URLの拡張子は任意ですが、実装技術をWebアプリケーションに漏らすユーザーを避けるために、拡張子としてhtml、htmlなどの名前を使用することが一般的です.
サーブレットの名前には、DispatcherサーブレットにロードするSpring MVCプロファイルを決定する重要な用途があります.デフォルトでは、サーブレット名に-servletを付ける.xml接尾辞はファイル名のプロファイルとして使用されます.contextConfigLocationというサーブレットパラメータでプロファイルを明示的に指定することもできます.上記の設定によりcourtサーブレットのデフォルトでSpring MVCプロファイルcourt-servletがロードする.xml.このファイルは標準的なSpring Beanプロファイルであるべきです.
Springにcourt-servletをロードするために.xml以外のプロファイルは、webでなければなりません.xmlでサーブレットリスニングContextLoaderListenerを定義します.
デフォルトでは、Beanプロファイル/WEB-INF/アプリケーションContextがロードされます.xmlですが、コンテキストパラメータcontextConfigLocationで独自のプロファイルを指定できます.ここでは、複数のプロファイルをカンマまたはスペースで区切り記号として指定することもできます. 
<web-app...>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/court-service.xml</param-value>
	</context-param>
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>
	...
</web-app> 

ContextLoaderListenerは、指定したBeanプロファイルをルートアプリケーションコンテキストにロードし、各DispatcherServiceは
インスタンスは、プロファイルを独自のアプリケーションコンテキストにロードし、ルートアプリケーションコンテキストを親コンテキストとして参照します.したがって、各DispatcherSellvetインスタンスがロードしたコンテキストは、ルートアプリケーションコンテキストで宣言されたBeanにアクセスしたり上書きしたりすることができます(ただし、逆にはできません).ただし、DispatcherServiceletインスタンスがロードしたコンテキストは相互にアクセスできません.