2016-08-12 39 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"/>

這應該做的伎倆..

相關問題