我想在应用程序启动时进行一次REST调用以检索一些配置参数。
例如,我们需要从另一台服务器检索一个名为FleetConfiguration的实体。我想做一次GET并保存数据在内存中保留剩余的运行时间。
在Spring中这样做的最佳方式是什么?使用Bean,配置注释..?
我发现了这个例子:https://stackoverflow.com/a/44923402/494659
我不妨使用POJO自己处理它的生命周期,但我确信有一种方法可以在Spring中完成,而无需重新发明轮子。
提前致谢。
答案 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
类中声明。
理想情况下,调用应该测试来自远程服务器的响应代码并采取相应的行动。