You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么@UtilityClass标注的工具类中@Value注入属性返回null

原有代码不生效的原因
  • @Value 是Spring提供的配置注入注解,仅能给Spring容器管理的Bean的实例成员变量注入配置值,默认不支持给静态成员变量注入值。
  • 你用到的Lombok @UtilityClass 注解会自动把类的所有字段、方法强制设置为static修饰,你定义的testString本质是静态字段,自然无法被@Value正常注入,初始值就是null。
  • 你调用方法时用的是MyUtil.test()静态类调用方式,没有用到Spring托管的Bean实例,即便你给类加上@Component等容器托管注解,没有做静态字段的特殊注入处理的话,调用返回的依然是null。

如果需要保留工具类的静态调用方式,可以参考如下实现:

// 去掉@UtilityClass注解,添加容器托管注解
@Component
public class MyUtil {

    private static String testString;

    // 通过非静态set方法接收Spring注入的配置值,再赋值给静态字段
    @Value("${myvalue}")
    private void setTestString(String testStr){
        MyUtil.testString = testStr;
    }

    public static String test(){
        return testString;
    }
}

内容的提问来源于stack exchange,提问作者timo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 09:00:01