springboot怎么静态加载@configurationProperties
作者:RiverSoul
时间:2023-05-12
浏览:3
平时开发,基本不改变的常量我们都放在了配置项里,如properties或yml文件里,这个时候为了只在启动时候进行加载。如何做呢?我们通过springboot的@ConfigurationProperties注解和static静态化对应属性进行。但如果操作不当,会导致加载的数据为空,至于为什么,看下面的案例。1、错误案例//错误1:get\set都是静态方法@Component@ConfigurationProperties(prefix="mobile")publicclassMobileConfig{
本文目录
平时开发,基本不改变的常量我们都放在了配置项里,如properties或yml文件里,这个时候为了只在启动时候进行加载。如何做呢?
我们通过springboot的 @ConfigurationProperties 注解和static静态化对应属性进行。
但如果操作不当,会导致加载的数据为空,至于为什么,看下面的案例。
1、错误案例
//错误1:get\set都是静态方法
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
public static Integer preview;
public static Integer getPreview() {
return preview;
}
public static void setPreview(Integer preview) {
MobileConfig.preview = preview;
}
}//错误2:跟第一种差不多,只是用了lombok注解代替了get\set方法,get\set也都是静态方法
@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
public static Integer preview;
}2、成功案例
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
public static Integer preview;
public static Integer getPreview() {
return preview;
}
public void setPreview(Integer preview) {
MobileConfig.preview = preview;
}
}@Data
@Component
@ConfigurationProperties(prefix = "mobile")
public class MobileConfig
{
public static Integer preview;
public void setPreview(Integer preview) {
MobileConfig.preview = preview;
}
}3、原因
spring在注入的时候,需要调用set 方法,如果这个方法是静态方法,就没法动态注入了,所以只需要把get方法加入static作为静态方法即可,如果用了@Data,只需要重写set方法即可。
作者最新文章
Fences桌面激活教程:输入许可证密钥与验证步骤详解
2026-11-01 12:25
RTX 5070双风扇设计,小机箱也能装
2026-10-27 11:05
漫蛙漫画app下载安装最新版本
2026-10-13 13:19
漫蛙漫画官网入口链接
2026-10-13 13:19
漫蛙2漫画APP最新版本下载免费安装
2026-10-13 13:17
下一篇:
SpringBoot2怎么自定义端点
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
























