Spring 如何给static变量赋值

本文介绍如何使用Spring框架为静态变量赋值。首先通过配置文件加载属性,再利用非静态变量作为中介,最终将值传递给静态变量。文章提供了一个具体的实现案例。

        先说明如何在将配置文件中的值赋值给spring中的变量:

               1.在classpath下面的.properties文件中定义变量;

               2.在spring配置文件中将.properties加载进来:    <context:property-placeholder ignore-unresolvable="true" location="classpath:*.properties"/>

               3.在需要赋值的java变量上加注解:@Value("${properties文件中的key}")


        然后就有坑了,spring这样可以给变量赋值,但是该变量必须是非static的,因为static修饰的变量在类加载的时候就加载了。这个时候如果断点调试,可以发现他是null,那么如何给一个static变量赋值呢,其实就是通过非静态变量赋值,即先给非static修饰的赋值,在将这个值赋值给static变量。我们可以通过set方法,注意这个方法必须是非静态的方法。

@Component

class Test{

           public static String COUPON_RECEIVEE; // 当前应用 环境
    
        @Value("${coupon_receivee}")
        public  void setTest(String coupon_receivee) {
          UrlConstants.COUPON_RECEIVEE = coupon_receivee;
        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值