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?
Antwort
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");
}
}
Sie sollten in ApplicationListener aussehen und vor allem;
ApplicationListener<ContextRefreshedEvent>
Sie können dies mit den folgenden Schritten umzusetzen in:
-
- 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 ***"); } }
-
- Fügen Sie die folgende Bean-Konfiguration Ihre Application
<bean id="applicationInitialised" class="path.RestartNotifier"/>
, die den Trick tun sollten ..
- 1. C# -, wie Sie überprüfen, ob ein Prozess erfolgreich gestartet wurde
- 2. Wie kann überprüft werden, ob der Befehl im Thread erfolgreich in Java gestartet wurde und ein anderer Thread gestartet werden kann?
- 3. Der verwaltete Server kann nicht gestartet werden, wenn er zu einem vorhandenen Cluster hinzugefügt wurde
- 4. org.hibernate.TransactionException: Transaktion wurde nicht erfolgreich gestartet
- 5. Wie kann man wissen, ob ein MapReduce-Job neu gestartet wurde oder neu gestartet wurde?
- 6. Wie kann ich wissen, wann eine Anfrage gestartet wurde?
- 7. install4j: Wie kann ich überprüfen, ob mein Apache Tomcat Server erfolgreich gestartet wurde oder nicht?
- 8. Wie man SCSS verwaltet, wenn ein Projekt gestartet wurde
- 9. Wie kann überprüft werden, ob ein Google-Benutzerkonto auf dem Gerät hinzugefügt wurde, bevor das GCM-Verfahren gestartet wird?
- 10. Wie kann der Suchanbieter erkannt werden, der bereits hinzugefügt wurde?
- 11. Wie kann ich feststellen, ob ein Realm erfolgreich aktualisiert wurde?
- 12. Wissen, ob eine Klasse hinzugefügt wurde (wurde mit Javascript hinzugefügt)
- 13. tk Fenster wurde kleiner, wenn eine Schaltfläche hinzugefügt wurde
- 14. Eclipse Java Mars kann nicht gestartet werden?
- 15. Einhorn kann nicht gestartet werden, Master konnte nicht gestartet werden. Überprüfen Sie das stderr-Protokoll auf Details
- 16. Starten von Neo4j fehlgeschlagen: Komponente wurde erfolgreich initialisiert, konnte aber nicht gestartet werden
- 17. Wird erlang aufgezeichnet, wenn ein Prozess gestartet wurde?
- 18. hadoop kann nicht gestartet werden start-dfs.sh
- 19. Die Hibernate-Transaktion konnte nicht bestätigt werden. verschachtelte Ausnahme ist org.hibernate.TransactionException: Transaktion wurde nicht erfolgreich gestartet]
- 20. Quartz: Wie kann eine Reihe von Jobs entfernt werden, wenn ein anderer Job gestartet wird?
- 21. ServiceMix kann nicht gestartet werden
- 22. Masstransit - Keine MSMQ-Nachrichten hinzugefügt, wenn der Empfängerdienst nicht gestartet wurde
- 23. Kann ein SharePoint Workflow gestartet werden, wenn eine E-Mail in Outlook empfangen wird?
- 24. Finden Sie, wo ein Protokoll ausgelöst wurde
- 25. Wie kann ein Terminal-Befehl in Rails erfolgreich validiert werden?
- 26. Wie kann festgestellt werden, ob Webapp in Hudson oder anderen CI-Servern erfolgreich bereitgestellt wurde?
- 27. Wie kann festgestellt werden, ob eine Konsolenanwendung in einem Konsolenfenster gestartet wurde?
- 28. Starten des Neo4j-Servers fehlgeschlagen: Komponente '' wurde erfolgreich initialisiert, konnte aber nicht gestartet werden
- 29. Wie kann ein Spiel jederzeit neu gestartet werden?
- 30. Wie kann ich ein APK erfolgreich signieren?
Sie den Server bedeuten hat neu gestartet ? – davidxxx
Nein, nicht der Server, sondern die Java-Anwendung, die auf dem Server ausgeführt wird – sinewave