java - @Value 注解不从属性文件中注入(inject)值

标签 java spring constructor properties annotations

我正在使用 @Value 注释来获取属性,它在 Normal 方法中成功发生但在 Class 构造函数中没有发生。任何人都可以说出可能是什么原因吗?

Class A {

    @Value("#{columnProperties['Users.Columns']}")
    String columnNames;

    A()
    {
        System.out.println("In Constructor="+columnNames);
    }

    void show()
    {
        System.out.println("In Method="+columnNames);
    }

}

当我做的时候

A obj=new A();

我得到输出

In Constructor=null

obj.show() 给出

In Method=A,B,C

(这意味着期望的结果)

我希望在调用构造函数后立即设置值。如果我将 String 声明放在静态或初始化 block 中,则会出现编译错误。

最佳答案

当对象还没有完成构建时(也就是说,对象的构造函数还没有完成),我们如何确定对象的成员真正就绪了?在我看来,在构造函数完成之前,Spring 可能不会注入(inject)该值。

关于java - @Value 注解不从属性文件中注入(inject)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7426218/

相关文章:

java - 如何使用带有 TextView 列表的单选按钮

java - 使用 Java 在 Google Analytics 上进行分页

java - Spring OAuth2 授权服务器替代方案

java - 条件生成器分组依据和计数不起作用

java - 使用@RequestBody 将 JSON 转换为枚举类型

c++ - 无法将引用从一个类传递到另一个类

java - 如何用动态值实例化构造函数并 Autowiring 它?

java - @Qualifier 在 Junit4 中不起作用

java - SPRING-DATA-JPA 简单审计不起作用

c++ - 自定义列表类的初始值设定项列表构造函数