SpringBoot @Value获取application.properties中的配置无效的问题
2020-07-21 04:14
3775 查看
无效的原因主要是要注意@Value使用的注意事项:
- 1、不能作用于静态变量(static);
- 2、不能作用于常量(final);
- 3、不能在非注册的类中使用(需使用@Componet、@Configuration等);
- 4、使用有这个属性的类时,只能通过@Autowired的方式,用new的方式是不会自动注入这些配置的。
这些注意事项也是由它的原理决定的:
springboot启动过程中,有两个比较重要的过程,如下:
- 1 、扫描,解析容器中的bean注册到beanFactory上去,就像是信息登记一样。
- 2、 实例化、初始化这些扫描到的bean。
@Value的解析就是在第二个阶段。
BeanPostProcessor定义了bean初始化前后用户可以对bean进行操作的接口方法,它的一个重要实现类
AutowiredAnnotationBeanPostProcessor正如javadoc所说的那样,为bean中的
@Autowired和
@Value注解的注入功能提供支持。
下面说下两种方式:
[code]resource.test.imageServer=http://image.everest.com
1、
[code]@Configuration public class EverestConfig { @Value("${resource.test.imageServer}") private String imageServer; public String getImageServer() { return imageServer; } }
2、
[code]@Component @ConfigurationProperties(prefix = "resource.test") public class TestUtil { public String imageServer; public String getImageServer() { return imageServer; } public void setImageServer(String imageServer) { this.imageServer = imageServer; } }
然后在需要的地方注入就可
[code] @Autowired private TestUtil testUtil; @Autowired private EverestConfig everestConfig; @GetMapping("getImageServer") public String getImageServer() { return testUtil.getImageServer(); // return everestConfig.getImageServer(); }
相关文章推荐
- spring boot 配置属性值获取注解@Value和@ConfigurationProperties比较
- 关于eclipse中springboot的配置文件application.properties中的中文在浏览器中显示乱码的问题。
- spring boot 通过@Value,@ConfigurationProperties获取配置
- 解决eclipse创建spring boot项目加载不到application.properties配置文件的问题
- SpringBoot 的配置文件 application.properties的位置问题&&文件问题
- 创建springboot项目时 yml或application.properties无效或无法读取的问题
- spring boot application properties配置详解
- ApplicationContextAware获取Spring上下文,通过基类获取properties中的配置属性
- SpringBoot学习:获取yml和properties配置文件的内容(转)
- SpringBoot学习系列 | 获取properties配置
- springboot 继承shiro 使用redis缓存 @Value 标签无效 无法获取值
- spring boot Application.properties 配置大全
- Springboot属性文件application.properties配置大全,版本:1.5.4
- spring-boot application.properties配置文件和自定义配置文件
- Spring boot 学习笔记(1)——hello world创建,属性application.properties、 yml配置
- SpringBoot 配置文件 application.properties
- (六)、SpringBoot 自定义配置属性,可以在application.properties中修改
- springboot @value注入static对象 与 application.properties 与 pom.xml 取值
- springboot如何读取配置文件中的参数(例如:application-consts.properties) 又结合maven读取配置文件的顺序
- spring boot application properties配置详解