天天看點

Spring官方工作 / 面試必備常用注解詳解@Configuration@ConfigurationProperties

Spring3.0開啟了偉大的注解時代,替代了傳統的xml配置,注解使得我們的開發更加高效!

再不怕沒時間陪對象啦!

@Configuration

顯式指定與此Configuration類關聯的Spring bean定義的名稱。 如果未指定(這是最常見的情況,SE們都太懶了!),将自動生成bean名稱

僅當通過元件掃描擷取Configuration類或直接提供給AnnotationConfigApplicationContext時,自定義名稱才适用。

如果将Configuration類注冊為傳統的XML bean定義,則bean元素的名稱/ id将優先。

傳回的是建議的元件名稱,如果有的話(否則為空字元串)

Spring官方工作 / 面試必備常用注解詳解@Configuration@ConfigurationProperties

@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

Spring官方工作 / 面試必備常用注解詳解@Configuration@ConfigurationProperties

外化配置的注釋。 如果要綁定并驗證某些外部屬性(例如,來自.properties檔案),請将其添加到@Configuration類中的類定義或方法。

與 @Value 相反,由于屬性值被外部化,是以不會評估SpEL表達式
Spring官方工作 / 面試必備常用注解詳解@Configuration@ConfigurationProperties