在静态方法中访问@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);
    }

}

控制台:

相关推荐
qq_4017004114 小时前
Qt容器性能优化:QVector、QHash、QMap到底应该怎么选?
开发语言·qt·性能优化
YDS82914 小时前
大营销平台 —— 活动SKU库存扣减业务及其一致性处理
java·spring boot·redis·rabbitmq·ddd
星栈独行14 小时前
Node 接口该写同步还是异步?
服务器·开发语言·后端·程序人生·node.js
减瓦14 小时前
源码视图技术:集 APT 和 AST 所长
java·project lombok
小刘学技术14 小时前
AI人工智能中的类别不平衡问题:成因、影响与解决方案
开发语言·人工智能·python·机器学习
兰令水14 小时前
hot100【acm版】【2026.7.21打卡-java版本】
java·开发语言·算法·leetcode·面试
IT_Octopus14 小时前
一次由 RestTemplate 引发的 Connection reset:被 XML 截胡的请求体
xml·java·spring boot
云烟成雨TD14 小时前
Micrometer 系列【2】可观测性:指标(Metrics)
java·云原生·micrometer
2501_9142459315 小时前
Java应用性能调优与生产监控部署:2026年实战手册
java·开发语言