SpringでシンプルなHello World

公式ドキュメントからの説明を示しつつHello Worldを書いていたのですが色々説明するところがあって書ききるのが遅くなりそうなのでほぼ説明無しでHello Worldの例を書くことにしました。
Web上で探せばたくさんあるからこれを書く意味あるかな?とも思いましたが自分用のメモも兼ねてますしあまり気にしないことにしました(笑)

以下で最小限にHello Worldします。

SampleWebAppという名前で/SampleWebApp/helloというURLでアクセスすると最終的にHelloWorld.jspの内容を表示する、という簡単なHello Worldを作成します。まずはweb.xmlから。

SpringのDispatcherServletのみを宣言しそれをContextRootにマッピングしています。DispatcherServletにinit-paramでcontextConfigLocationを指定することでSpringの設定ファイルやクラスを指定することも可能ですが指定しない場合は「/WEB-INF/<servlet-name>-servlet.xml」を読み込みます。今回のケースだとservlet-nameをSampleWebAppと指定しているのでDefaultの設定ファイルの名前はSampleWebApp.xmlとなります。

明示的に指定する場合はこんな感じですね。

次にSpringの設定ファイルです。

component-scanで指定したPackage以下からSpringのContextになるものを調べて管理してくれます。annotaion-drivenでアノテーションベースでの定義が可能になります。1)だったはず。

viewResolverで指定しているのはcontrollerが返したViewResource名に応じたJSPを自動的に選択してくれる設定です。Controllerが”HelloWorld”を返せば/Web-INF/jsp/HelloWorld.jspでClientにResponseを返してくれます。

あとはControllerとなるクラスとHTMLを出力するためのJSPです。

今更ですがもう少し処理を書き足せばよかったと思うぐらいシンプルですね…。@Controllerを付与したClassがControllerとして動くことを宣言し、@RequestMappingで該当メソッドが@RequestMappingで指定したURLで呼ばれるように宣言します。

この場合は/SampleWebApp/helloでHelloWorldクラスのhelloメソッドが呼ばれます。

helloメソッドは”HelloWorld”を返しているのみですが、返した内容によってViewResolverが出力するためのJSPなりを解決し出力を生成します。

本当にシンプルな内容になってしまいました。そのうちmessageSource、Locale等々の内容も記載します。2)予定

では。

References   [ + ]

1. だったはず。
2. 予定