【发布时间】:2017-09-23 17:02:40
【问题描述】:
我想在应用程序启动期间(或更确切地说是在结束时)执行一些代码。我发现有几个资源使用@PostConstruct 注释、@EventListener(ContextRefreshedEvent.class)、实现 InitializingBean、实现 ApplicationListener...它们都在启动时执行我的代码,但应用程序属性的占位符并没有被替换片刻。因此,如果我的类有一个带有 @Value("${my.property}") 注释的成员,它会返回 "${my.property}" 而不是 yaml(或任何地方)中定义的实际值。 替换发生后如何执行我的代码?
【问题讨论】:
-
spring 配置将解析放置在
@Value中的属性占位符。如果它没有被加载,则意味着不正确的属性名称或特定的 yaml 未加载到上下文中。当然可以使用@PostConstuct来设置成员
标签: java spring spring-boot properties spring-config