从spring-boot开始,已经支持yml文件形式的配置,@ConfigurationProperties的大致作用就是通过它可以把properties或者yml配置直接转成对象
例如:
配置文件: sms.url=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX sms.appkey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX sms.secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX sms.signName=XXXXXXXXXXXXXXXXXXXXXXXXXXX sms.tplCode=XXXXXXXXXXXXXXXXXXXXXXXXXXXX sms.type=normal
JAVA代码: @Component @ConfigurationProperties(prefix = "sms") public class SmsSettings {private String url ="";private String appkey ="";private String secret ="";private String signName ="";private String tplCode ="";private String type ="";private String open ="";private String tplCode2 ="";public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getAppkey() {return appkey;}public void setAppkey(String appkey) {this.appkey = appkey;}public String getSecret() {return secret;}public void setSecret(String secret) {this.secret = secret;}public String getSignName() {return signName;}public void setSignName(String signName) {this.signName = signName;}public String getTplCode() {return tplCode;}public void setTplCode(String tplCode) {this.tplCode = tplCode;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getOpen() {return open;}public void setOpen(String open) {this.open = open;}public String getTplCode2() {return tplCode2;}public void setTplCode2(String tplCode2) {this.tplCode2 = tplCode2;}}
通过注解@ConfigurationProperties来配置redis
@Configuration @EnableAutoConfiguration public class RedisConfig { @Bean @ConfigurationProperties(prefix="spring.redis.poolConfig") public JedisPoolConfig getRedisConfig(){ JedisPoolConfig config = new JedisPoolConfig(); return config; } @Bean @ConfigurationProperties(prefix="spring.redis") public JedisConnectionFactory getConnectionFactory(){ JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setUsePool(true); JedisPoolConfig config = getRedisConfig(); factory.setPoolConfig(config); return factory; } @Bean public RedisTemplate<?, ?> getRedisTemplate(){ RedisTemplate<?,?> template = new StringRedisTemplate(getConnectionFactory()); return template; } }