首页 > 解决方案 > 如何在静态类中使用@Value?

问题描述

我的默认类中有一个静态类,如下所示:

public class SomeClass {
    public static class AnotherClass {
        //HERE I NEED TO USE @VALUE
        //@Value("myBoolean")
        //public boolean myBoolean; //always false, reason of the static class?
    }
}

有人能告诉我为什么myBoolean总是false当我尝试在静态类中获取这个值但是什么时候在普通类中然后返回一个好的值?如何在静态类中获得价值?感谢您的任何回答

标签: javaspringspring-boot

解决方案


好吧,从我的第一眼看,我建议通过使用@Component注释来制作静态的AnotherClass Spring 组件,这样 Spring 可以将其初始化为 bean,然后在找到@Value注释时使用依赖注入来填充特定值。

@Component
public class SomeClass {
    @Component
    public static class AnotherClass {
        @Value("${myBoolean}")
        public Boolean myBoolean;

        @PostConstruct
        void init() {
            System.out.println(myBoolean); // you can see injected value on console
        }
    }
}

推荐阅读