整合方式一: 通过注解扫描完成 Listener 组件的注册
1, 编写 listener
- package com.bjsxt.listener;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import javax.servlet.annotation.webListener;
- /**
- * Created by Administrator on 2019/2/5.
- */
- @WebListener
- public class FirstListener implements ServletContextListener{
- @Override
- public void contextInitialized(ServletContextEvent servletContextEvent) {
- System.out.println("FirstListener 初始化......");
- }
- @Override
- public void contextDestroyed(ServletContextEvent servletContextEvent) {
- }
- }
2, 编写启动类
- package com.bjsxt;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.Web.servlet.ServletComponentScan;
- /**
- * Created by Administrator on 2019/2/4.
- */
- @SpringBootApplication
- @ServletComponentScan // 在 springboot 启动时, 会扫描 @WebServlet,@WebFilter,@WebListener 等, 并将该类实例化
- public class App {
- public static void main(String[] args){
- SpringApplication.run(App.class,args);
- }
- }
整合方式二: 通过方法完成 Listener 组件注册
1, 编写 listener
- package com.bjsxt.listener;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import javax.servlet.annotation.WebListener;
- /**
- * Created by Administrator on 2019/2/5.
- */
- public class SecondListener implements ServletContextListener{
- @Override
- public void contextInitialized(ServletContextEvent servletContextEvent) {
- System.out.println("SecondListener 初始化......");
- }
- @Override
- public void contextDestroyed(ServletContextEvent servletContextEvent) {
- }
- }
2, 编写启动类
- package com.bjsxt;
- import com.bjsxt.filter.SecondFilter;
- import com.bjsxt.listener.SecondListener;
- import com.bjsxt.servlet.SecondServlet;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.Web.servlet.FilterRegistrationBean;
- import org.springframework.boot.Web.servlet.ServletComponentScan;
- import org.springframework.boot.Web.servlet.ServletListenerRegistrationBean;
- import org.springframework.boot.Web.servlet.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- /**
- * Created by Administrator on 2019/2/4.
- */
- @SpringBootApplication
- public class App2 {
- public static void main(String[] args){
- SpringApplication.run(App2.class,args);
- }
- /**
- * 注册 Servlet
- * @return
- */
- @Bean
- public ServletRegistrationBean getServletRegistrationBean(){
- ServletRegistrationBean bean = new ServletRegistrationBean(new SecondServlet());
- bean.addUrlMappings("/second");
- return bean;
- }
- /**
- * 注册 Filter
- * @return
- */
- @Bean
- public FilterRegistrationBean getFilterRegistrationBean(){
- FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
- bean.addUrlPatterns(new String[]{"/second"});
- return bean;
- }
- /**
- * 注册 Listener
- * @return
- */
- @Bean
- public ServletListenerRegistrationBean<SecondListener> getServletListenerRegistrationBean(){
- ServletListenerRegistrationBean<SecondListener> bean = new ServletListenerRegistrationBean<SecondListener>(new SecondListener());
- return bean;
- }
- }
运行启动类, 监听器初始化输出的信息就会在控制台输出
来源: http://www.bubuko.com/infodetail-2945231.html