1. 程式人生 > >spring常用註解備忘: @Configuration、@ConfigurationProperties、@Bean、@Qualifier

spring常用註解備忘: @Configuration、@ConfigurationProperties、@Bean、@Qualifier

1,下面先給出這四個註解的使用場景程式碼:

A,這四個註解的使用如下:

/**
 * 卡牛徵信
 */
@Configuration
@ConfigurationProperties(prefix="cube.partner.conifg.kn")
public class KNApiProviderConfig {
    String name="KNApiProvider";
    
       //生產環境URL
       String prodUrl;

       //測試環境URL
       String testUrl;

       //是否測試模式
       boolean testMode;
     
       String appkey;
        
       String clientId;
       
       String keyStoreAlias;

       @Bean
       @Qualifier("KNApiProvider")
public ApiProvider createKNApiProvider() { ApiConfig config = new ApiConfig(); config.setName(name); config.setClientId(clientId); config.setAppkey(appkey); config.setTestUrl(testUrl); config.setProdUrl(prodUrl); config.setTestMode(testMode); config.setKeyStoreAlias(keyStoreAlias); return new KNApiProvider(config); }   //此處省略setter 和 getter 方法 }

B,以下是通過@Autowired 呼叫KNApiProvider Bean

 

2,註解詳解,如上所示:

@Configuration 作為 Spring對Bean的顯示配置,用於構建bean的定義。官方解析:@Configuration用於定義配置類,可替換xml配置檔案,被註解的類內部包含有一個或多個被@Bean註解的方法,這些方法將會被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext類進行掃描,並用於構建bean定義,初始化Spring容器。

@ConfigurationProperties 是對"

@Configuration"註解類的屬性配置說明。如:@ConfigurationProperties(prefix="cube.partner.conifg.kn")。這樣該註解類的屬性就可以配置在檔案中,如以上類“KNApiProviderConfig”的屬性可以在application.yml配置。如:

cube.partner.conifg.kn:
    testMode: true
    appkey: cQANOuVTlCfl9l4Tebl8GSjlQ#&GVf6v
    clientId: 6DbOmgvHMCM04N8
    keyStoreAlias: 5nrcdcd1V6wu4V4MJpVbHPXVrqu5XpWF
    testUrl: "https://test.cardniu.com"

@Bean 對Bean的定義。

@Qualifier 對Bean的命名