[Java][Spring] Spring3でDIしてみる!(アノテーション使用)
Spring3を使って、一番基本的な形のプログラムを作成してみます。
今回は、アノテーションを使ってクラス内部に属性を付与することで、面倒なcontextを書かない方法で解説しています。
また、記事執筆時点では、なぜかSpringの公式サイトからjarがダウンロードできなくなっていました。
「Mavenでやれ」とのことでしたので、今回はそれで。。
●Mavenプロジェクトの作成
まずは、Mavenプロジェクトを作成します。
上部メニューから「ファイル>新規>Mavenプロジェクト」を選択します。
「シンプルなプロジェクトの作成」にチェックを入れて「次へ」ボタンを押下します。
以下を入力して「完了」ボタンを押下します。(実際意味があるのはアーティファクトIDくらいです。。)
グループID:test.spring3
アーティファクトID:TestSpring3
名前:test.spring3
「TestSpring3」プロジェクトが作成されます。
pom.xmlというファイルが出来ていますので、以下記述を貼り付けます。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.5.RELEASE</version>
</dependency>
</dependencies>
また、springモジュールが自動的にダウンロードされます。
次に、モジュールを作成します。
①Javaモジュール
パッケージ:test.spring3
モジュール:App.java、TestService.java
②SpringContext
階層:META-INF/sprng
モジュール:app-context.xml
●App.java
package test.spring3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;
@Component // Springコンテナに管理対象であることを明示
public class App {
@Autowired // Springコンテナが「TestService」を自動設定することを明示(privateでも可能)
private TestService service = null;
public void execService(){
service.exec();
}
public static void main( String[] args ){
// Springコンテナ取得
ApplicationContext appContext =
new ClassPathXmlApplicationContext("classpath:./META-INF/spring/app-context.xml");
// SpringコンテナからAppクラスのオブジェクトを取得
App app = appContext.getBean(App.class);
// appを実行
app.execService();
}
}
●TestService.java
package test.spring3;
import org.springframework.stereotype.Component;
@Component // Springコンテナに管理対象であることを明示
public class TestService {
public void exec(){
System.out.println("exec()が実行されました。");
}
}
●app-context.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- test.spring3パッケージ以下を検索対象とする設定 -->
<context:component-scan base-package="test.spring3" />
</beans>
app-context.xmlの「component-scan」設定により、「@component」アノテーションが付いている二つのクラスが検索されます。
その後、mainメソッド実行時にSpringコンテキストからApp.javaのインスタンスを取り出すと、メンバーのTestServiceに自動的にオブジェクトが設定された状態となります。
最後に、プログラムを実行すると以下のように表示されると思います。
(おわり)
スポンサードリンク
関連記事
-
-
[Java] CSVファイルの読み込み方法
こんにちは、kei0310です。 CSVファイルをJavaに取り込む方法を解説します。
-
-
[Java] Apache POIでExcel操作!
Apache POIをまずは使ってみようという方(自分も含め)のメモ 導入 Maven htt
-
-
[Java][Framework] Spring Bootを使って、Spring MVC速攻開発してみる!(DB接続あり)
STSインストール STSは、EclipseにSpring関連のいろいろな機能を詰め込んだオールイ
-
-
[Java][Eclipse] Mavenが利用可能な動的Webプロジェクトの作成
こんにちは、keiです。 今回は、Mavenが利用可能な動的Webプロジェクトの作成について解
-
-
[Java][Spring] DIする方式を細かく見てみる① @ScopeでのSingletonとPrototypeの指定
今回は@Scopeアノテーションを用いて、オブジェクトをDIする方式を選択してみます。 ●解説
-
-
[Java][基本] mainメソッドの書き方
こんにちはkeiです。 Javaの基本として、意外と知らないmain関数について解説します。
-
-
[Java] 日付の計算方法(DateFormat、Date、Calendar)
こんにちは、kei0310です。 Javaで日付を計算する方法について解説します。 まず
-
-
[Java] Javaのインストール(プログラム開発・入門用)
Javaのコードを書きたい!! という目的のためのJavaのインストール方法と、コマンドラインでの
-
-
[java] 文字列の一部を切り取る方法(substring)
こんにちは。 今回は文字列の一部を切り取る方法について解説します。 具体的には、String
-
-
[Java] テキストファイルの読み込み方法
こんにちは、今回はテキストファイルをJavaで読む方法を紹介します。 標準で提供されているクラ