Spring3.0開啟了偉大的注解時代,替代了傳統的xml配置,注解使得我們的開發更加高效! 再不怕沒時間陪對象啦!
@Configuration
顯式指定與此Configuration類關聯的Spring bean定義的名稱。 如果未指定(這是最常見的情況,SE們都太懶了!),将自動生成bean名稱
僅當通過元件掃描擷取Configuration類或直接提供給AnnotationConfigApplicationContext時,自定義名稱才适用。
如果将Configuration類注冊為傳統的XML bean定義,則bean元素的名稱/ id将優先。
傳回的是建議的元件名稱,如果有的話(否則為空字元串)

@Configuration使用
下面是一個使用執行個體,建立了一個userService和accountService的執行個體,accountService執行個體引用userService執行個體。
@Configuration
@ComponentScan(basePackages = { "com.test.web" })
@Import(UserConfg.class)
@ImportResource(locations = {"classpath:config/spring-beans.xml"})
public class MainConfg {
@Bean(name = "userService", initMethod = "init", destroyMethod = "destroy")
@Scope("singleton")
public UserService userService() {
return new UserService();
}
@Bean
public AccountService accountService(UserService userService) {
AccountService as = new AccountService();
as.setUserService(userService);
return as;
}
}
注解說明
@Configuration:代表這個類是一個配置類。
@ComponentScan:用來掃描指定包下面的注解類。
@Import:用來導入其他的@Configuration配置類。
@ImportResource:用來導入xml配置檔案,比如某些配置一定要xml配置。
@Bean:用來定義一個bean,可以指定初始、銷毀方法,及bean範圍等。
這些注解都在spring-context包下,還有其他注解用來解放xml形式的配置,大量xml配置可java配置化,隻要定義好,Spring會自動掃描包下面的@Configuration注解的配置檔案類來裝配。
@ConfigurationProperties
外化配置的注釋。 如果要綁定并驗證某些外部屬性(例如,來自.properties檔案),請将其添加到@Configuration類中的類定義或方法。
與 @Value 相反,由于屬性值被外部化,是以不會評估SpEL表達式