2016-08-12 42 views
2

我有一个要求将一些日志记录添加到Java Spring应用程序,以注意应用程序已重新启动,因此我们可以从它的存在创建通知和挂钩。任何人都可以提出这样做​​的最佳方式?我可以找到的所有资源都讨论了Java Bean的生命周期,而不是应用程序生命周期。如何在Java Spring应用程序成功启动时添加日志?

+0

你指的是服务器重新启动? – davidxxx

+0

不,不是服务器,而是运行在服务器上的Java应用程序 – sinewave

回答

1

你可能会有兴趣看看Event Handling in Spring. 你必须赶上ContextStartedEvent

当ApplicationContext使用 的start()方法的ConfigurableApplicationContext界面上启动该事件被发布。 您可以查询您的数据库,或者您可以在收到此事件后重新启动任何已停止的应用程序 。

public class CStartEventHandler 
    implements ApplicationListener<ContextStartedEvent>{ 

    public void onApplicationEvent(ContextStartedEvent event) { 
     System.out.println("ContextStartedEvent Received"); 
    } 
} 
0

你应该看看ApplicationListener特别;

ApplicationListener<ContextRefreshedEvent> 

您可以通过以下步骤实现这一点:

    1. 创建一个实现ApplicationListener作为这样一个类:

public class RestartNotifier implements ApplicationListener<ContextRefreshedEvent> { @Override public void onApplicationEvent(ContextRefreshedEvent event) { log.info("*** Application initialised ***"); } }

  • 添加以下bean的配置,你的ApplicationContext

<bean id="applicationInitialised" class="path.RestartNotifier"/>

这应该做的伎俩..

相关问题