2016-08-12 2 views
2

Ich habe eine Anforderung, einige Protokollierung zu einer Java Spring-Anwendung hinzuzufügen, um festzustellen, dass die Anwendung neu gestartet wurde, und so können wir Benachrichtigungen und Hooks von seiner Anwesenheit erstellen. Kann jemand den besten Weg vorschlagen, dies zu tun? Alle Ressourcen, die ich finden kann, sprechen über den Java Bean-Lebenszyklus und nicht über den Application Lifecycle.Wie kann ein Protokoll hinzugefügt werden, wenn eine Java Spring-Anwendung erfolgreich gestartet wurde?

+0

Sie den Server bedeuten hat neu gestartet ? – davidxxx

+0

Nein, nicht der Server, sondern die Java-Anwendung, die auf dem Server ausgeführt wird – sinewave

Antwort

1

Sie würden wahrscheinlich daran interessiert zu sehen in Event Handling in Spring. Sie haben ContextStartedEvent

Dieses Ereignis fangen wird veröffentlicht, wenn das Application der Start mit gestartet wird() -Methode auf der ConfigurableApplicationContext Schnittstelle. Sie können Ihre Datenbank abfragen oder nach dem Empfang dieses Ereignisses eine gestoppte Anwendung erneut starten/starten.

public class CStartEventHandler 
    implements ApplicationListener<ContextStartedEvent>{ 

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

Sie sollten in ApplicationListener aussehen und vor allem;

ApplicationListener<ContextRefreshedEvent> 

Sie können dies mit den folgenden Schritten umzusetzen in:

    1. Erstellen Sie eine Klasse, die ApplicationListener als solche implementiert:

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

    1. Fügen Sie die folgende Bean-Konfiguration Ihre Application

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

, die den Trick tun sollten ..

Verwandte Themen