在静态方法中访问@Value注入的静态变量!!

一、 静态变量

static修饰的成员变量,称为静态成员变量,静态成员变量最大的特性:不属于某个具体的对象,是所有对象所共享

简单来说:在某些类的对象中存在一些相同的成员变量,那么这种成员变量就可以设置成static修饰的成员变量,当然这只是一种相对简单的介绍。

二、静态方法

Java中,被static修饰的成员方法称为静态成员方法,是类的方法,不是某个对象所特有的。静态成员一般是通过静态方法来访问的

三、当我们通过@Value注解将配置文件中的参数注入到类中时,静态方法无法直接访问该变量

解决方案:

1.测试案例

java 复制代码
@Component
public class TestUtils {
    @Value("${server.port}")
    private static String port;

    @PostConstruct
    public static void test(){
        System.out.println("启动中");
        System.out.println("端口号{}"+port);
    }
}

控制台:

2.声明一个静态变量,编写一个方法,在方法上加上@PostConstruct,将@Value的值赋值给getNum变量

复制代码
 

@PostConstruct注解的作用:在程序初始化之前执行该方法

java 复制代码
@Component
public class TestUtils {
    @Value("${ums.num}")
    private  String num;

    private static String getNum;

    @PostConstruct
    public void init(){
        getNum=num;
    }

    @PostConstruct
    public static void test(){
        System.out.println("启动中");
        System.out.println("端口号{}"+getNum);
    }

}

控制台:

相关推荐
小锋学长生活大爆炸2 分钟前
【工具】免费的文本读写API
java·数据库·mysql
「QT(C++)开发工程师」7 分钟前
C++设计模式
开发语言·c++·设计模式
csgo打的菜又爱玩10 分钟前
数仓整体架构和建模架构
java·大数据·开发语言·架构
ん贤12 分钟前
自go-zero走进微服务
开发语言·后端·golang
翱翔的苍鹰12 分钟前
多Agent智能体系统设计思路
java·python·深度学习·神经网络·机器学习·tensorflow
小菜鸡桃蛋狗13 分钟前
第一次学c语言系列之——函数补充!!!
开发语言
小花14 分钟前
java后端框架之spring
java·开发语言·spring
一条大祥脚14 分钟前
势能分析与势能线段树
开发语言·javascript·数据结构·算法
小王不爱笑13216 分钟前
Spring Boot 配置文件核心用法与加载优先级
java·spring boot·后端
小北方城市网22 分钟前
Spring Cloud Gateway 动态路由进阶:基于 Nacos 配置中心的热更新与版本管理
java·前端·javascript·网络·spring boot·后端·spring