Spring 3 JavaConfigの例
Spring 3の
JavaConfig
機能はコアのSpringモジュールに含まれているため、開発者はXMLファイルからBean定義とSpring設定をJavaクラスに移動できます。
しかし、古典的なXML方法を使ってBeanと設定を定義することはできますが、
JavaConfig
はもう一つの代替ソリューションです。
古典的なXML定義とJavaConfigの違いを見て、SpringコンテナでBeanを定義してください。
Spring XMLファイル:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="helloBean" class="com.mkyong.hello.impl.HelloWorldImpl"> </beans>
JavaConfigの
Equivalent設定:
package com.mkyong.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.mkyong.hello.HelloWorld; import com.mkyong.hello.impl.HelloWorldImpl; @Configuration public class AppConfig { @Bean(name="helloBean") public HelloWorld helloWorld() { return new HelloWorldImpl(); } }
Spring JavaConfig Hello World
今度は、SpringのJavaConfigの完全な例を参照してください。
1.ディレクトリ構造
この例のディレクトリ構造を参照してください。
2.依存関係ライブラリ
JavaConfig(
@ Configuration
)を使用するには、
CGLIB
ライブラリをインクルードする必要があります。依存関係を参照してください:
<!-- Spring 3 dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- JavaConfig need this library --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2.2</version> </dependency>
3.春の豆
単純なbean。
package com.mkyong.hello; public interface HelloWorld { void printHelloWorld(String msg); }
package com.mkyong.hello.impl; import com.mkyong.hello.HelloWorld; public class HelloWorldImpl implements HelloWorld { @Override public void printHelloWorld(String msg) { System.out.println("Hello : " + msg); } }
4. JavaConfigアノテーション
@Configuration`を注釈してSpringにコアSpring設定ファイルであることを通知し、
@ Bean`を介してBeanを定義します。
package com.mkyong.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.mkyong.hello.HelloWorld; import com.mkyong.hello.impl.HelloWorldImpl; @Configuration public class AppConfig { @Bean(name="helloBean") public HelloWorld helloWorld() { return new HelloWorldImpl(); } }
5.それを実行する
JavaConfigクラスに `AnnotationConfigApplicationContext`をロードします。
package com.mkyong.core; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import com.mkyong.config.AppConfig; import com.mkyong.hello.HelloWorld; public class App { public static void main(String[]args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); HelloWorld obj = (HelloWorld) context.getBean("helloBean"); obj.printHelloWorld("Spring3 Java Config"); } }
出力
Hello : Spring3 Java Config
ソースコードをダウンロードする
ダウンロードする – リンク://wp-content/uploads/2011/06/Spring3-JavaConfig-Example.zip[Spring3-JavaConfig-Example.zip](6 KB)
リファレンス
3 JavaConfigリファレンス]