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的命名

猜你喜欢

转载自blog.csdn.net/cyuyanchenxuyuan/article/details/83509609