1. 程式人生 > >Spring Boot-- Servlet、Filter、Listener、Interceptor

Spring Boot-- Servlet、Filter、Listener、Interceptor

Spring Boot-- Servlet、Filter、Listener、Interceptor


在Spring Boot中讓Servlet、Listener、Filter生效的方法:

  1. 在Application上使用@ServletComponentScan註解標註
  2. 配置一個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; }