Spring @Value(“${}”) 通常为 null
2022-09-02 11:31:05
我正在使用Spring Boot应用程序。在某些类中,字段是加载的,而在其他类上,它们始终是 。@Component
@Value
null
似乎(s)在我的/被创建后加载。@Value
@Bean
@Component
我需要从我的.@Bean
你有什么建议吗?
我正在使用Spring Boot应用程序。在某些类中,字段是加载的,而在其他类上,它们始终是 。@Component
@Value
null
似乎(s)在我的/被创建后加载。@Value
@Bean
@Component
我需要从我的.@Bean
你有什么建议吗?
属性(和所有 Bean 依赖项)在 Bean 构造(构造函数的执行)后注入。
如果需要,可以使用构造函数注入。
@Component
public class SomeBean {
private String prop;
@Autowired
public SomeBean(@Value("${some.prop}") String prop) {
this.prop = prop;
//use it here
}
}
另一种选择是移动带有注释的方法中的构造函数逻辑,该逻辑将在创建Bean并解析其所有依赖项和属性值后执行。@PostConstruct
当您将其解析为静态变量时,可能会发生这种情况。我很久以前就观察到了这一点,并通过删除静态来解决它。正如人们常说的那样,在使用静电时要小心。