springBoot 静态变量@value取不到值

在工具类中给静态变量初始化值,使用了springBoot的@Value注解,但是没有赋值成功,得到的是null

@Value("${jdbc.url}")
private static String jdbcUrl;

(jdbc.url为springboot配置文件application.properties中配置的常量)

@Value对static的属性注入无效

可以用set方法赋值

    @Value("${jdbc.url}")   

  public  void setUrl(String url) {       

  this.jdbcUrl= url;   

  }

转载于:https://www.cnblogs.com/caoyajun33-blog/p/11208124.html

Spring Boot 应用,可以通过 `@Value` 注解来读 Nacos 配置心的。不过由于 `@Value` 注解是在 Spring 容器初始化时注入的,因此不能用于静态变量。不过可以通过 `@PostConstruct` 注解来在 Bean 初始化完毕后再进行静态变量的赋操作。以下是一个示例代码: ```java import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class NacosConfigUtil { @Value("${nacos.config}") private String configValue; private static String staticConfigValue; @PostConstruct public void init() { staticConfigValue = configValue; } public static String getStaticConfigValue() { return staticConfigValue; } } ``` 在上面的代码,我们首先使用 `@Value` 注解来读 Nacos 配置心的,并将其赋给一个非静态变量 `configValue`。然后在 `init()` 方法,我们将 `configValue` 的赋给静态变量 `staticConfigValue`。最后,我们提供了一个静态方法 `getStaticConfigValue()` 来获静态变量 `staticConfigValue` 的。 需要注意的是,因为 `@PostConstruct` 注解是在 Bean 初始化完毕后才执行的,因此在应用启动时静态变量 `staticConfigValue` 的可能还未被赋。如果需要在应用启动时就使用该,可以考虑将 `staticConfigValue` 的类型改为 `AtomicReference<String>`,并在 `getStaticConfigValue()` 方法使用 `get()` 方法来获
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值