org.springframework.boot.loader.Launcher standardmäßig wird immer ein Hintergrund-Thread in der launch() -Methode (https://github.com/spring-projects/spring-boot/blob/master/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/Launcher.java#L105) spawnen. Gibt es eine einfache Möglichkeit, dies so zu ändern, dass es im selben Thread ausgeführt wird, sodass mein Dienst-Launcher wissen kann, wann die Anwendung vollständig geladen wurde, und nicht einfach jedes Mal mit Erfolg sofort beendet wird.Spring Boot synchrone Launcher
5
A
Antwort
0
Ich glaube, Sie Hörer wie folgt registrieren:
public static void main(String[] args) {
SpringApplication app = new SpringApplication(WsBootClientApplication.class);
app.addListeners(new ApplicationListener<ContextStartedEvent>() {
@Override
public void onApplicationEvent(ContextStartedEvent event) {
//do your stuff
}
});
app.run(args);
}
Wenn ContextStartedEvent für Sie nicht das richtige Ereignis ist, Sie ContextStartedEvent mit ApplicationEvent ersetzen kann. Das ist allgemeiner und wird alle Kontextlebenszyklusereignisse behandeln, die Ihre Anwendung anhören kann.
Verwandte Themen
- 1. Wie spezifiziert man den Launcher in Spring Boot Gradle?
- 2. Spring Boot Actuator ohne Spring Boot
- 3. Spring-Boot & Spring-Security-Konfiguration
- 4. Verwenden Sie den Spring Boot Actuator ohne Spring-Boot-Anwendung
- 5. Spring Boot: Hibernate und Flyway Boot-Reihenfolge
- 6. Spring-Boot-Liquibase-Integration
- 7. Spring Boot devtools IntelliJ
- 8. Spring Boot-Sicherheitskonsole/Befehlszeilenanwendung
- 9. Spring Boot Statische Ressourcen
- 10. Stormpath Spring Boot
- 11. Spring boot metrics + datadog
- 12. Wie in Spring-Boot-
- 13. Sicherheitskonfiguration mit Spring-Boot
- 14. Intellij Spring Boot PropertiesLauncher
- 15. Spring boot + Groovy + logback.groovy
- 16. Spring Boot Taglibs
- 17. Spring Boot JSP
- 18. Spring Boot XML-Konfigurationsoption
- 19. Vorteil der Spring Boot
- 20. Spring Boot JSON Serialisierung
- 21. Spring Boot - konfigurieren EntityManager
- 22. Spring Boot Autowired null
- 23. Spring Boot Protokollierungsmuster
- 24. Spring Boot Mongodb Verbindungsfehler
- 25. Spring Boot Basic
- 26. Spring Boot alternative Indexseite
- 27. Spring Boot Tests fehlschlagen
- 28. Spring Boot mit Liferay
- 29. Spring Boot Logger Aspekte
- 30. Spring Boot CommandLineRunner Ausnahmebehandlung
Wenn Sie es betrachten, können Sie Ihre eigene Implementierung verwenden, die Jarlauncher-/Warlauncher-Klasse erweitern und die Startmethode überschreiben. – MarianP
Ja Ich verstehe, dass ich diese Methode leicht überschreiben kann. Das Problem ist, dass Spring-Boot nicht einfach eine Möglichkeit bietet, eine andere mainClass für die jar-Startmethode zu verwenden. –
Der Context Class Loader kann nicht gesetzt werden, ohne ein neues 'Thread' zu erzeugen, so dass es zu Problemen kommen kann, wenn Sie versuchen, diese Methode zu ändern. Was macht Ihr "Service Launcher" eigentlich? –