Spring Boot-- Servlet、Filter、Listener、Interceptor
在Spring Boot中让Servlet、Listener、Filter生效的方法:
- 在Application上使用@ServletComponentScan注解标注
- 配置一个WebConfig
@Configuration
public class WebConfig {
@Bean
public FilterRegistrationBean getFilter(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
DemoFilter filter = new DemoFilter();
filterRegistrationBean.setFilter(filter);
List<String> urls = new ArrayList<>();
urls.add("/*");
filterRegistrationBean.setUrlPatterns(urls);
//设置优先级 值越小优先级越高
filterRegistrationBean.setOrder(1);
return filterRegistrationBean;
}
@Bean
public ServletRegistrationBean getServlet(){
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
DemoServlet servlet = new DemoServlet();
servletRegistrationBean.setServlet(servlet);
List<String> urls = new ArrayList<>();
urls.add("/demoServlet");
urls.add("/servlet");
servletRegistrationBean.setUrlMappings(urls);
//程序启动时就加载servlet
servletRegistrationBean.setLoadOnStartup(1);
return servletRegistrationBean;
}
@Bean
public ServletListenerRegistrationBean getListener(){
ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean();
DemoListener listener = new DemoListener();
servletListenerRegistrationBean.setListener(listener);
servletListenerRegistrationBean.setOrder(1);
return servletListenerRegistrationBean;
}
@Bean
public ServletListenerRegistrationBean getSessionListener(){
ServletListenerRegistrationBean servletListenerRegistrationBean = new ServletListenerRegistrationBean();
DemoSessionListener listener = new DemoSessionListener();
servletListenerRegistrationBean.setListener(listener);
servletListenerRegistrationBean.setOrder(2);
return servletListenerRegistrationBean;
}