How to register ServletContextListener in den Frühling starten
Hallo, ich bin versucht zu umschreiben meinem alten code zu verwenden, Spring Boot.
Ich habe einen listener public class ExecutorListener implements ServletContextListener
.
Wie kann ich mich registrieren diesen listener für das Frühjahr Starten?
Ich habe versucht:
@SpringBootApplication
@ComponentScan
public class Application extends SpringBootServletInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.addListener(new ExecutorListener());
}
}
Aber die contextInitialized
- Methode nicht aufgerufen wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, einige Dinge:
Registrieren
ExecutorListener
als@Bean
ausdrücklich:oder
Können Sie versuchen, es mit explizit erstellen ServletRegistrationBean:
Wenn Sie einen embedded container, wird es bald eine Dritte option aus, wenn SpringBoot 1.3.0+
Anmerkungen
ServletContextListener
Umsetzung mit@WebListener
vom servlet spec 3, dann kommentieren Sie eines Ihrer Feder@Configuration
Klassen mit dem neuen@ServletComponentScan
(und ggf. mitzuteilen, welche Pakete zu Scannen, für Filter, servlets und Hörer).Nur in 1.3.0+ im moment aber: http://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/web/servlet/ServletComponentScan.html
Docs:
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-embedded-container-servlets-filters-listeners
Im Fall bevorzugen Sie die automatische Erkennung verwenden von Anmerkungen nur, machen Sie Ihre
ExecutorListener
Umsetzung derServletContextInitializer
und z.B. mit Anmerkungen versehen Sie es mitjavax.annotation.ManagedBean
. Von dort aus, nur Umsetzung deronStartup
Methode: