我有一个要求将其余API调用调用到其他应用程序以获取属性,并且这些属性可以用于应用程序级别。春季应用程序启动期间的其他API调用
这是在应用程序启动过程中需要的,可供整个应用程序使用。 例如,我们有PropertyPlaceholderConfigurer,它可以包含在应用程序上下文中。但我们不希望在这里包含这些属性。
是否有任何其他类在上下文启动期间初始化应用程序?
感谢, KK
我有一个要求将其余API调用调用到其他应用程序以获取属性,并且这些属性可以用于应用程序级别。春季应用程序启动期间的其他API调用
这是在应用程序启动过程中需要的,可供整个应用程序使用。 例如,我们有PropertyPlaceholderConfigurer,它可以包含在应用程序上下文中。但我们不希望在这里包含这些属性。
是否有任何其他类在上下文启动期间初始化应用程序?
感谢, KK
可以使用CommandLineRunner
例如
@Component
public class MyBean implements CommandLineRunner {
public void run(String... args) {
// Do something...
}
}
,然后使用RestTemplate调用 RestTemplate restTemplate = new RestTemplate();
您可以创建一个ApplicationListener。在Spring上下文初始化后,这种方法可用于运行逻辑。
为了实现这一点,你需要创建一个实现了ApplicationListener接口的bean:
@Component
public class StartupApplicationListenerExample implements
ApplicationListener<ContextRefreshedEvent> {
private static final Logger LOG = Logger.getLogger(StartupApplicationListenerExample.class);
public static int counter;
@Override public void onApplicationEvent(ContextRefreshedEvent event) {
LOG.info("Increment counter");
counter++;
}
}
标注与@PostConstruct
注释的方法,并把打电话给你的REST API中它的逻辑。
如果您仅收到来自第三方应用程序的属性,则可能应该查看Spring Cloud Config(https://cloud.spring.io/spring-cloud-config/)。
通过此项目,您可以设置一个应用程序,该应用程序仅向所有询问的人员提供属性。这些属性可以存储在git或任何你喜欢的。
将此项作为属性提供程序运行后,您可以从中检索属性并将其与本地属性合并。 这些都是在应用程序启动时完成的。