【问题标题】:Spring Boot: Retrieve config via rest call upon application startupSpring Boot:在应用程序启动时通过 rest 调用检索配置
【发布时间】:2018-11-27 10:16:48
【问题描述】:

我想在应用程序启动时进行一次 REST 调用以检索一些配置参数。

例如,我们需要从另一台服务器检索一个名为 FleetConfiguration 的实体。我想执行一次 GET 并将数据保存在内存中以供其余运行时使用。

在春季最好的方法是什么?使用 Bean、Config 注释 ..?

我发现了这个例子:https://stackoverflow.com/a/44923402/494659

我还不如自己使用 POJO 来处理它的生命周期,但我确信有一种方法可以在 Spring 中做到这一点,而无需重新发明轮子。

提前致谢。

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    以下方法将在应用程序启动后运行,调用远程服务器并返回 FleetConfiguration 对象,该对象将在整个应用程序中可用。 FleetConfiguration 对象将是一个单例并且不会改变。

    @Bean
    @EventListener(ApplicationReadyEvent.class)
    public FleetConfiguration getFleetConfiguration(){
        RestTemplate rest = new RestTemplate();
        String url = "http://remoteserver/fleetConfiguration";
        return rest.getForObject(url, FleetConfiguration.class);
    }
    

    该方法应在@Configuration 类或@Service 类中声明。

    理想情况下,调用应测试来自远程服务器的响应代码并采取相应措施。

    【讨论】:

      【解决方案2】:

      更好的方法是使用Spring Cloud Config 在此处将每个应用程序的配置外部化,并且可以在运行时针对任何配置更改进行更新,这样就不会出现停机时间。

      【讨论】:

      • 谢谢!我们会考虑的。与此同时,我需要找到解决我的问题的方法:)
      • @EventListener(ApplicationReadyEvent.class)@Bean 注释的方法如何使用Spring RestTemplate 进行调用。
      • 这就是我现在要做的。
      猜你喜欢
      • 1970-01-01
      • 2021-07-21
      • 2022-07-08
      • 2020-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      相关资源
      最近更新 更多