我有一个与org.springframework.core.env.Environment自动连接的控制器。
@Controller public class RegistrationController{
@Autowired (required=false)
private ServiceA serviceA;
@Autowired
Environment env;spring-boot模块使用cloud-config-client进行配置。它在启动时从配置服务器读取配置。
控制器在其方法之一中从Environment获取值。
Integer.valueOf(env.getProperty("services.fixeddelay.val"));但是当我通过刷新端点/refresh进行刷新时,从环境中获取属性的值为null。
经过几次刷新后,它将获得该值。这种方式的自动装配有问题吗?我应该在这里使用@RefreshScope吗?它是如何工作的。
发布于 2015-07-01 11:29:40
问题出在从配置服务器加载的配置中的属性spring.application.name。该属性在配置服务器中是错误的,尽管它在classpath:bootstrap.yml中有一个适当的值。
第一次刷新后,现有属性将从环境中清除。在第二次刷新后,将加载环境值。
从配置服务器属性文件中删除属性spring.application.name已修复此问题。现在,即使没有@RefreshScope,刷新也能正常工作
https://stackoverflow.com/questions/31151868
复制相似问题