【问题标题】:Environment.getProperty null - Spring-Boot Spring-CloudEnvironment.getProperty null - Spring-Boot Spring-Cloud
【发布时间】:2015-09-18 01:15:35
【问题描述】:

我有一个使用 org.springframework.core.env.Environment 自动连接的控制器。

@Controller public class RegistrationController{

@Autowired (required=false)
private ServiceA serviceA;

@Autowired
Environment env;

spring-boot 模块配置了 cloud-config-client。 它在启动时从 config-server 读取配置。

控制器通过其方法之一从环境中获取值。

   Integer.valueOf(env.getProperty("services.fixeddelay.val"));

但是当我通过刷新端点 /refresh 刷新时,它会从环境中获取该属性的 null。

经过几次刷新后,它得到了值。 这种方式自动装配有问题吗?我应该在这里使用@RefreshScope 吗?它是如何工作的。

【问题讨论】:

    标签: spring spring-boot spring-cloud


    【解决方案1】:

    问题在于从配置服务器加载的配置中的属性spring.application.name。该属性是错误地在 config-server 中给出的,尽管它在 classpath:bootstrap.yml 中具有正确的值。

    第一次刷新后,现有属性已从环境中清除。 第二次刷新后,环境值正在加载。

    从 config-server 属性文件中删除属性 spring.application.name 解决了这个问题。现在即使没有@RefreshScope也可以刷新

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 2019-05-01
      • 2018-08-18
      • 2020-12-30
      • 2021-10-21
      • 2018-04-19
      相关资源
      最近更新 更多