美文网首页
static静态变量无法读取配置文件中的值

static静态变量无法读取配置文件中的值

作者: 小和大大 | 来源:发表于2024-04-23 10:35 被阅读0次

问题描述
在为工具类的静态属性赋值,使用@Value注解读取配置文件中的数据时,发现读取不到,报null

使用第二种方案@ConfigurationPropereties也无法读取

    @Value("${jwt.sigKey}")
    private static String signKey;
    @Value("${jwt.expire}")
    private static Long expire ;

问题分析
spring的依赖注入是让spring容器产生一个对象实例,是基于对象层面的,而静态变量是类层面的,不属于对象的属性

使用@Value注解读取配置文件时,配置文件的内容会作为对象的属性被容器管理

spring不建议在代码中为静态变量注入属性值,因为类加载时会优先加载静态变量,此时Spring的的上下文环境还未完成加载

解决方案
暂时只找到了这一种解决方案,能有效解决当前问题

添加set方法,通过set方法实现数据的注入

private static String signKey;
private static Long expire ;

@Value("${jwt.sigKey}")
public void setSignKey(String signKey) {
    JwtUtil.signKey = signKey;
}
@Value("${jwt.expire}")
public void setExpire(Long expire) {
    JwtUtil.expire = expire;
}

————————————————

原文链接:https://blog.csdn.net/Cqy180/article/details/134120503

相关文章

  • java随笔

    static变量和static方法 static变量 1.static修饰的变量:静态变量,静态变量在内存中只有一...

  • 关于JAVA中的static变量/方法/代码块

    静态变量   在类成员变量中可以分为静态变量(也叫类变量, 有static修饰)和实例变量(没有static修饰)...

  • 类变量、成员变量、局部变量

    类变量: 也成为静态常量。类中独立于方法之外的变量,用static修饰。(static表示“全局的”、“静态的”,...

  • static 与extern

    static: 一、在C或OC中,static主要定义全局静态变量、定义局部静态变量、定义静态函数。 1、定义全局...

  • Java中的静态内部类

    一:静态内部类 使用static修饰的变量是静态变量,使用static 修饰的方法是静态方法,静态变量和静态方法都...

  • python 标准库之configparser

    读取: 改写: 创建配置文件: 读取配置文件中的值(key,value):

  • JAVA——static修饰符解惑及使用

    1. static的作用 static可以修饰变量,被static修饰的变量叫做静态变量,程序运行时静态变量存放在...

  • extern static const inline

    static static 可以用来修饰静态变量,在iOS中,如果使用static修饰全局变量,则全局变量只能在当...

  • static关键字

    static的作用0.static可以修饰变量,被static修饰的变量叫做静态变量,程序运行时静态变量存放在方法...

  • static有什么用途

    在C语言中,static主要定义全局静态变量,定义局部静态变量,定义静态函数。 static 属于静态变量,使用它...

网友评论

      本文标题:static静态变量无法读取配置文件中的值

      本文链接:https://www.haomeiwen.com/subject/onaixjtx.html