Spring零配置之@Configuration註解詳解

茅坤寶駿氹發表於2018-05-04

轉載自 Spring零配置之@Configuration註解詳解

 

 

@Configuration介紹

 

Spring3.0之前要使用Spring必須要有一個xml配置檔案,這也是Spring的核心檔案,而Spring3.0之後可以不要配置檔案了,通過註解@Configuration完全搞定。

 

 

@Configuration即用來代替Spring配置檔案的,它就是一個@Component元件,接收一個value值也就是bean的名字,value可以不填。

 

@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註解的配置檔案類來裝配。

 

相關文章