java - SpringBoot中application.properties中的@Value始终给出null

标签 java spring-boot properties components

如何正确从 application.properties 文件注入(inject)值?

主类:

@SpringBootApplication
public class Main {


    public static void main(String args[]) {
        SpringApplication.run(Main.class,args);
    }

application.properties 文件:

my.password=admin

测试类:

@Component
public class Test {
    @Value("${my.password}")
    private String mypassword;

    public String getMypassword() {
        return mypassword;
    }

    public void setMypassword(String mypassword) {
        this.mypassword = mypassword;
    }

    public Test(){
        System.out.println("@@@@@@@@@@@@@@@@@@@"+ mypassword);
    }
}

控制台打印始终为 null,而不是 application 文件中的值

最佳答案

属性不会在创建类时(即调用构造函数时)注入(inject),而是稍后注入(inject)。因此,您会在构造函数中看到 null。

尝试添加一个用 @PostConstruct 注释的方法,如下所示并检查结果:

@PostConstruct
public void afterCreation(){
    System.out.println("@@@@@@@@@@@@@@@@@@@"+ mypassword);
}

关于java - SpringBoot中application.properties中的@Value始终给出null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51595583/

相关文章:

java - 如何在 SSO 的 Redis 中刷新 token 过期时间?

CSS:分组属性

java - 指定属性文件的 Java 路径

java - 为什么 Spring Boot Starter Mongodb Reactive 不保存我的实体的列表字段?

java - 为所有请求添加 header

java - 从 HttpServletRequest 获取 XML 并用于端点

javascript - 如何在Object.defineProperty值标志中访问这个变量?

java - Gson 不能反序列化继承的类?

java - Spring Boot 应用程序引擎日志格式不正确

java - 与正常的异常处理相比,Hystrix 有哪些优势?