2017-08-02 184 views
0

我有一个要求将其余API调用调用到其他应用程序以获取属性,并且这些属性可以用于应用程序级别。春季应用程序启动期间的其他API调用

这是在应用程序启动过程中需要的,可供整个应用程序使用。 例如,我们有PropertyPlaceholderConfigurer,它可以包含在应用程序上下文中。但我们不希望在这里包含这些属性。

是否有任何其他类在上下文启动期间初始化应用程序?

感谢, KK

回答

0

可以使用CommandLineRunner

例如

@Component 
public class MyBean implements CommandLineRunner { 
public void run(String... args) { 
    // Do something... 
} 
} 

,然后使用RestTemplate调用 RestTemplate restTemplate = new RestTemplate();

0

您可以创建一个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++; 
    } 
} 
0

标注与@PostConstruct注释的方法,并把打电话给你的REST API中它的逻辑。

0

如果您仅收到来自第三方应用程序的属性,则可能应该查看Spring Cloud Config(https://cloud.spring.io/spring-cloud-config/)。

通过此项目,您可以设置一个应用程序,该应用程序仅向所有询问的人员提供属性。这些属性可以存储在git或任何你喜欢的。

将此项作为属性提供程序运行后,您可以从中检索属性并将其与本地属性合并。 这些都是在应用程序启动时完成的。

相关问题