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: ******
clientId: ******
keyStoreAlias: ***********
testUrl: "https://test.*******.com"
@Bean 对Bean的定义。
@Qualifier 对Bean的命名