java - Spring boot @Value 不适用于静态字段

标签 java spring annotations

我正在尝试从 spring boot 的属性文件中获取值。 application.properties文件在resources文件夹下,及其内容;

TEST=someText

代码是;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.PropertySource;

@SpringBootApplication
@PropertySource("classpath:application.properties")

public class Bb8Application {


    @Value("${TEST}")
    static String someString;

    public static void main(String[] args) {

        System.out.print(someString);

    }

}

结果我得到 NULL 而不是“someText”。有什么我想念的吗?

最佳答案

Spring 不允许注入(inject)静态字段。如果你真的想使用静态变量,你可以试试这个 workaround .

关于java - Spring boot @Value 不适用于静态字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41239184/

相关文章:

annotations - 需要澄清 Resharper NotNullAttribute 的含义

java - 如果我们有 @Override 为什么没有 @Implementation 或 @Implements`?

java - polymer 核心抽屉面板在加载时抛出异常

Java 多按钮 Action

java - 在 Java 中使用 Jericho HTML 解析器检索格式良好的 HTML

java - spring 安全配置 xml 到 java

spring - 在运行时更改 spring-cloud-stream 实例索引/计数

java - 使用 .properties 文件中的值设置此类的成员变量的最佳方法是什么?

java - 我如何在我的 JSP 页面中格式化这个代表十进制数字的字符串?

java - 如何使用 Maven 处理注释?