Spring系列十一:Spring @Configuration註解
阿新 • • 發佈:2019-12-31
我欲穿花尋路,直入白雲深處,浩氣展虹霓。
概述
Spring
@Configuration
註解有助於基於Spring
註解的自動裝配。@Configuration
註解指示一個類宣告瞭一個或多個@Bean
方法,Spring
容器可以對該類進行處理,以便在執行時為這些bean
生成bean
定義和服務請求。。
從spring 2
開始,我們就將bean
配置寫入xml
檔案中。但是Spring 3
允許將bean
定義移出xml
檔案。我們可以在Java
檔案本身中給出bean
定義。這稱為Spring
Java Config
功能(使用@Configuration
註解)
Spring
@Configuration
註解用法
在任何類頂部使用@Configuration
註解來宣告該類提供了一個或多個@Bean
方法,並且可以由Spring
容器進行處理以在執行時為這些bean
生成bean
定義和服務請求。
@Configuration
public class AppConfig {
@Bean(name="demoService")
public DemoClass service()
{
}
}
複製程式碼
Spring
@Configuration
註解示例
@Configuration
註解的用法。
建立maven
專案
mvn archetype:generate
-DgroupId=cn.howtodoinjava.core
-DartifactId=springCoreTest
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
mvn eclipse:eclipse
複製程式碼
更新Spring
依賴項
<properties>
<spring.version>3.0.5.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope >test</scope>
</dependency>
<!-- 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>
<!-- For JavaConfig -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
</dependencies>
複製程式碼
建立spring
bean
public interface DemoManager {
public String getServiceName();
}
public class DemoManagerImpl implements DemoManager
{
@Override
public String getServiceName()
{
return "My first service with Spring 3";
}
}
複製程式碼
Spring
配置類
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import cn.howtodoinjava.core.beans.DemoManager;
import cn.howtodoinjava.core.beans.DemoManagerImpl;
@Configuration
public class ApplicationConfiguration {
@Bean(name="demoService")
public DemoManager helloWorld()
{
return new DemoManagerImpl();
}
}
複製程式碼
測試
測試Java Config
可配置的bean
。
package cn.howtodoinjava.core.verify;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import com.howtodoinjava.core.beans.DemoManager;
import com.howtodoinjava.core.config.ApplicationConfiguration;
public class VerifySpringCoreFeature
{
public static void main(String[] args)
{
ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfiguration.class);
DemoManager obj = (DemoManager) context.getBean("demoService");
System.out.println( obj.getServiceName() );
}
}
複製程式碼