Heim > Java > javaLernprogramm > Hauptteil

Spielen Sie mit SpringBoot 2 und integrieren Sie Listener schnell

(*-*)浩
Freigeben: 2019-10-10 16:20:54
nach vorne
2367 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich ein kurzes Setup-Tutorial zur Verwendung von Listener in SpringBoot 2 vorgestellt. Vor dem Lesen müssen Sie die grundlegende Verwendung von Listener und die Erstellung eines SpringBoot-Projekts verstehen.

Spielen Sie mit SpringBoot 2 und integrieren Sie Listener schnell

Schnelle Demonstrationsoperation

Schritt eins: Schreiben Sie einen Listener und deklarieren Sie die @WebListener-Annotation für die Listener-Klasse. Der spezifische Code lautet wie folgt:

@WebListener
public class ApplicationListener implements ServletContextListener{
	private Logger log = LoggerFactory.getLogger(ApplicationListener.class);
	
	@Override
	public void contextInitialized(ServletContextEvent sce) {
		log.info("ApplicationListener 监听器启动...");
	}
	@Override
	public void contextDestroyed(ServletContextEvent sce) {
		log.info("ApplicationListener 监听器销毁...");
	}
}
Nach dem Login kopieren

Schritt 2: Fügen Sie die geschriebene ApplicationListener-Klasse über JavaConfig in den Spring-Kontext ein.

Übergeben Sie den benutzerdefinierten ApplicationListener an die Konstruktion von ServletListenerRegistrationBean und erstellen Sie dann eine ServletListenerRegistrationBean-Bean-Instanz. Der spezifische Code lautet wie folgt:

@Configuration
public class WebApplicationConfig {
	@Bean
	public ServletListenerRegistrationBean<ApplicationListener>  userServlet(){
		return new ServletListenerRegistrationBean<ApplicationListener> (new ApplicationListener());
	}
}
Nach dem Login kopieren

Oder deklarieren Sie die Annotation @ServletComponentScan in der Startup-Klasse Der spezifische Code lautet wie folgt:

@SpringBootApplication
@ServletComponentScan
public class SpringbootExamplesApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootExamplesApplication.class, args);
	}
}
Nach dem Login kopieren

Test

Starten Sie das SpirngBoot-Projekt und Sie werden sehen, dass der in ApplicationListener definierte ApplicationListener-Listener zerstört wird ... Protokollinformationen.

2019-10-04 00:58:39.361  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2019-10-04 00:58:39.375  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: &#39;characterEncodingFilter&#39; to: [/*]
2019-10-04 00:58:39.376  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: &#39;hiddenHttpMethodFilter&#39; to: [/*]
2019-10-04 00:58:39.376  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: &#39;formContentFilter&#39; to: [/*]
2019-10-04 00:58:39.377  INFO 5184 --- [  restartedMain] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: &#39;requestContextFilter&#39; to: [/*]
2019-10-04 00:58:39.420  INFO 5184 --- [  restartedMain] c.lijunkui.listener.ApplicationListener  : ApplicationListener 监听器启动...
Nach dem Login kopieren

Starten Sie das Projekt hier im Startstatus. Obwohl ein Fehler gemeldet wird, können Sie die im ApplicationListener definierte Protokollinformationsausgabe zur Zerstörung sehen.

Caused by: java.net.BindException: Address already in use: bind
	at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_144]
	at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_144]
	at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_144]
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_144]
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_144]
	at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:236) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:1108) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:550) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	at org.apache.catalina.connector.Connector.startInternal(Connector.java:957) ~[tomcat-embed-core-9.0.12.jar:9.0.12]
	... 19 common frames omitted

2019-10-04 01:01:07.860  INFO 7864 --- [  restartedMain] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2019-10-04 01:01:07.863  INFO 7864 --- [  restartedMain] c.lijunkui.listener.ApplicationListener  : ApplicationListener 监听器销毁...
2019-10-04 01:01:07.876  INFO 7864 --- [  restartedMain] ConditionEvaluationReportLoggingListener :
Nach dem Login kopieren

Zusammenfassung

Die Schritte zur Integration von Listener in SpringBoot sind wie folgt:

Muss @WebListener auf dem Listener deklariert werden

in der Startup-Klasse Deklarieren Sie die Annotation @ServletComponentScan oder umschließen Sie den

Listener über ServletListenerRegistrationBean und fügen Sie ihn über JavaConfig

in den Spring-Kontext ein.

Codebeispiel

Meine lokale Umgebung ist wie folgt:

SpringBoot-Version: 2.1.0.RELEASE

Apache Maven Version: 3.6.0

Java Version: 1.8.0_144

IDEE: Spring Tools Suite (STS)

Das obige ist der detaillierte Inhalt vonSpielen Sie mit SpringBoot 2 und integrieren Sie Listener schnell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage