165. Spring Boot @ConfigurationProperties的locations过时【从零开始学Spring Boot】

 

【视频 & 交流平台】

à SpringBoot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à SpringCloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

à Spring Boot源码

https://gitee.com/happyangellxq520/spring-boot

à Spring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

 

需求缘起

 在录制Spring Boot自定义属性的时候,发现@ConfigurationPropertieslocations已经过时了,如下代码:

@ConfigurationProperties(prefix="email",locations={"classpath:email.properties"})
public class Email2Properties {
}

 

       如上代码情况locations已经过时,不建议使用了。

 

版本说明:

       出现以上的情况,前提是Spring Boot版本使用的是1.4+以上的版本,如果使用的1.4之前的版本,比如:1.3.3版本的时候,是可以正常使用的。

 

解决之道:

1@EnableConfigurationProperties取消激活自定义的配置类

2采用@Component的方式注册为组件,然后使用@PropertySource来指定自定义的资源目录,如下代码:

@Component
@ConfigurationProperties(prefix="email")
@PropertySource(value={"classpath:email.properties"})
public class Email2Properties {
}

 

可以参考链接:https://github.com/spring-projects/spring-boot/issues/6726

 

 

        

猜你喜欢

转载自412887952-qq-com.iteye.com/blog/2398717