springboot如何静态加载@configurationProperties
作者:奇怪的守护神 时间:2021-12-13 16:20:13
平时开发,基本不改变的常量我们都放在了配置项里,如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方法即可。
来源:https://blog.csdn.net/qq_24298751/article/details/126019483
标签:springboot,静态加载,@configurationProperties
0
投稿
猜你喜欢
JavaEE开发之SpringMVC中的自定义消息转换器与文件上传
2023-11-24 19:36:02
Android使用插件实现代码混淆
2023-02-25 07:13:10
Java Bean Validation使用示例详解
2023-07-19 07:05:26
设计模式系列之组合模式及其在JDK和MyBatis源码中的运用详解
2022-12-27 12:56:57
SpringBoot解决Required String parameter xxx is not present问题
2021-08-08 12:53:15
自己动手写的mybatis分页插件(极其简单好用)
2023-11-01 18:12:09
Android开发实现拨打电话与发送信息的方法分析
2023-06-19 07:09:13
Spring框架应用的权限控制系统详解
2023-11-11 14:17:11
JAVA十大排序算法之桶排序详解
2022-11-08 01:07:47
Springboot基础学习之初识SpringBoot
2022-08-18 08:48:59
Android registerForActivityResult动态申请权限案例详解
2021-10-05 17:40:42
java判断今天,昨天,前天,不能用秒间隔的简单实例
2021-07-27 23:01:35
java进阶之了解SpringBoot的配置原理
2022-05-08 05:10:36
Android中的设计模式
2022-09-13 06:33:21
SpringBoot+Redis实现数据字典的方法
2022-08-03 14:22:29
Java IO流之节点流与字符流的相关知识总结
2021-12-31 06:46:15
IntelliJ IDEA如何设置JDK版本
2022-08-27 07:46:03
C#复杂XML反序列化为实体对象两种方式小结
2022-08-05 16:50:45
教你用Java GUI实现文本文件的读写
2023-05-25 06:47:13
java POI解析Excel 之数据转换公用方法(推荐)
2023-06-10 11:04:53