Maven3 と Spring4 ではじめる Hello, World!

こんにちは、鈴木です。

 

ここしばらく Ruby/Rails ばかりだったので、すっかり Java 事情に疎くなってしまいました。

ということで Maven3 と Spring4 で Hello, World やります!

 

Spring って最新は 3 では?と思った方もいらっしゃるかも知れません。僕も「最新は Spring3 だったかなー」と思っていたのですが、2013/12/12 に 4.0.0 がリリースされています。(see Announcing Spring Framework 4.0 GA Release

 

ということで Spring4 で Hello, World やります!

 

あと、Maven も使います。Maven の最新バージョンは 3.1.1 ですね。依存ライブラリの管理には Ivy や Gradle も選択肢としてあるのですが、最近の主流はどれなんでしょうか。「これいいよー」などありましたら教えてくださいな。

 

Maven のインストール

Maven は以下のサイトでダウンロードできます。

http://maven.apache.org/

ダウンロードして展開してパスを通せば準備 OK です。

 

プロジェクトを作る

Maven でプロジェクトを作ります。

実行すると hello というディレクトリが作成されます。

 

pom.xml に Spring4 を追加する

まずは pom.xml を以下のように編集しましょう。

コメントで「追加 - ここから」と「追加 - ここまで」と書いた範囲を追加しました。

 

HelloService インタフェースを作る

HelloService というインタフェースを作成します。(src/com/example/spring4/hello/HelloService.java)

実装クラスの getMessage() で「Hello, World!」と返す予定です。

 

HelloServiceImpl クラスを作る

次に HelloService の実装クラスを作ります。(src/com/example/spring4/hello/HelloServiceImpl.java)

getMessage() で「Hello, World!」と返すように実装しました。

@Component を付けておくと Spring コンテナによってコンポーネントとして自動検出されるようになります。つまり、DI したい実装クラスには @Component を付けるということです。

 

HelloWorldPrinter を作る

次は HelloService を使ってメッセージを表示する HelloWorldPrinter クラスを作ります。(src/com/example/spring4/hello/HelloWorldPrinter.java)

HelloWorldPrinter 自身も Spring コンテナに登録するので @Component を付けています。helloService フィールドに @Autowired を付けていますが、これは Spring コンテナから型の合うコンポーネントを自動的に DI してもらうためのものです。

run() メソッドでは helloService#getMessage() の結果を単純に出力しています。

 

App クラスを作る

最後に動作確認用のコードを書きます。(src/com/example/spring4/hello/App.java)

AnnotationConfigApplicationContext を new して、それから取り出した HelloWorldPrinter の run() メソッドを呼び出しています。

App クラスに付けているアノテーションですが、@ComponentScan は @Configuration を付けたクラスで Spring コンテナが管理するコンポーネントを使うよー、と伝えるためのものです。

 

実行する

それではコンパイルして実行してみます。

きちんと「Hello, World!」と表示されました。

 

Hello, World! してみて

久しぶりの Java でしたが、Maven3 と Spring4 を使って無事に Hello, World することができました。

設定ファイルを書かずにアノテーションベースでできるのは便利で良いですね。

 

Comments are closed, but you can leave a trackback: Trackback URL.