Maison > Java > javaDidacticiel > Jouez avec SpringBoot 2 et intégrez rapidement Listener

Jouez avec SpringBoot 2 et intégrez rapidement Listener

(*-*)浩
Libérer: 2019-10-10 16:20:54
avant
2393 Les gens l'ont consulté

Cet article présente principalement un didacticiel de configuration rapide sur la façon d'utiliser Listener dans SpringBoot 2. Avant de lire, vous devez comprendre l'utilisation de base de Listener et comment créer un projet SpringBoot.

Jouez avec SpringBoot 2 et intégrez rapidement Listener

Opération de démonstration rapide

Première étape : écrivez un Listener et déclarez l'annotation @WebListener sur la classe Listener. Le code spécifique est le suivant :

@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 监听器销毁...");
	}
}
Copier après la connexion

Étape 2 : Injectez la classe ApplicationListener écrite dans le contexte Spring via JavaConfig.

Passez le ApplicationListener personnalisé dans la construction de ServletListenerRegistrationBean, puis créez une instance de ServletListenerRegistrationBean Bean. Le code spécifique est le suivant :

@Configuration
public class WebApplicationConfig {
	@Bean
	public ServletListenerRegistrationBean<ApplicationListener>  userServlet(){
		return new ServletListenerRegistrationBean<ApplicationListener> (new ApplicationListener());
	}
}
Copier après la connexion

Ou déclarez l'annotation @ServletComponentScan sur la classe de démarrage. le code spécifique est le suivant :

@SpringBootApplication
@ServletComponentScan
public class SpringbootExamplesApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootExamplesApplication.class, args);
	}
}
Copier après la connexion

Test

Démarrez le projet SpirngBoot et vous verrez que l'écouteur ApplicationListener défini dans ApplicationListener est détruit... les informations du journal.

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 监听器启动...
Copier après la connexion

Démarrez le projet ici dans l'état de démarrage Bien qu'une erreur soit signalée, vous pouvez voir la sortie des informations du journal définie dans ApplicationListener pour la destruction.

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 :
Copier après la connexion

Résumé

Les étapes pour intégrer Listener dans SpringBoot sont les suivantes :

Besoin de déclarer @WebListener sur le Listener

sur la classe de démarrage Déclarez l'annotation @ServletComponentScan ou encapsulez le

Listener via ServletListenerRegistrationBean, puis injectez-le dans le contexte Spring via JavaConfig

.

Exemple de code

Mon environnement local est le suivant :

Version SpringBoot : 2.1.0.RELEASE

Version Apache Maven : 3.6.0

Version Java : 1.8.0_144

IDÉE : Suite d'outils Spring (STS)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal