springboot如何静态加载@configurationProperties

 更新时间:2022年07月28日 10:00:39   作者:奇怪的守护神  
这篇文章主要介绍了springboot如何静态加载@configurationProperties,本文一个错误案例和成功案例结合实例代码给大家介绍的非常详细,需要的朋友可以参考下

平时开发,基本不改变的常量我们都放在了配置项里,如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方法即可。

到此这篇关于springboot如何静态加载@configurationProperties的文章就介绍到这了,更多相关springboot静态加载@configurationProperties内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实体类转成map的实现

    java实体类转成map的实现

    这篇文章主要介绍了java实体类转成map的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java图形化界面设计之布局管理器之BorderLayout案例详解

    Java图形化界面设计之布局管理器之BorderLayout案例详解

    这篇文章主要介绍了Java图形化界面设计之布局管理器之BorderLayout案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Springboot内置的工具类之CollectionUtils示例讲解

    Springboot内置的工具类之CollectionUtils示例讲解

    这篇文章主要介绍了Springboot内置的工具类之CollectionUtils,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • java 多线程死锁详解及简单实例

    java 多线程死锁详解及简单实例

    这篇文章主要介绍了java 多线程死锁详解及简单实例的相关资料,需要的朋友可以参考下
    2017-01-01
  • Java8接口默认静态方法及重复注解原理解析

    Java8接口默认静态方法及重复注解原理解析

    这篇文章主要介绍了Java8接口默认静态方法及重复注解原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Java wait和notifyAll实现简单的阻塞队列

    Java wait和notifyAll实现简单的阻塞队列

    这篇文章主要介绍了Java wait和notifyAll实现简单的阻塞队列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java布隆过滤器的原理和实现分析

    Java布隆过滤器的原理和实现分析

    数组、链表、树等数据结构会存储元素的内容,一旦数据量过大,消耗的内存也会呈现线性增长所以布隆过滤器是为了解决数据量大的一种数据结构。本文就来和大家详细说说布隆过滤器的原理和实现,感兴趣的可以了解一下
    2022-10-10
  • MybatisPlus只取一条记录的两种方法实现

    MybatisPlus只取一条记录的两种方法实现

    本文介绍了MyBatis-Plus2.x和3.x版本在IService接口获取单条记录的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-07-07
  • JavaWeb应用实例:用servlet实现oracle 基本增删改查

    JavaWeb应用实例:用servlet实现oracle 基本增删改查

    本篇文章主要介绍了JavaWeb应用实例:用servlet实现oracle 基本增删改查,非常具有实用价值,需要的朋友可以参考下。
    2017-01-01
  • SpringBoot利用EasyExcel实现导出数据

    SpringBoot利用EasyExcel实现导出数据

    EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具,它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能看,本文就将介绍如何利用EasyExcel实现导出数据,需要的朋友可以参考下
    2023-07-07

最新评论