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