Spring Boot:在应用程序启动时通过rest call检索配置

时间:2018-06-18 14:23:13

标签: spring-boot

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

例如,我们需要从另一台服务器检索一个名为FleetConfiguration的实体。我想做一次GET并保存数据在内存中保留剩余的运行时间。

在Spring中这样做的最佳方式是什么?使用Bean,配置注释..?

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

我不妨使用POJO自己处理它的生命周期,但我确信有一种方法可以在Spring中完成,而无需重新发明轮子。

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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类中声明。

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