SpringBoot系列:注册Servlet、Filter、Listener

 

在Servlet 3.0之前我们都是使用web.xml对web项目进行配置,需要增加Servlet、Filter或者Listener都是在web.xml增加相应的配置即可。这里我们使用的是使用Java配置来注册Servlet、Filter、Listener。

注册Servlet

方式一、使用ServletRegistrationBean注册

使用ServletRegistrationBean注册只需要在@Configuration类中加入即可,例如以下代码:

1
2
3
4
5
6
7
@Bean  
public ServletRegistrationBean myServlet() {
ServletRegistrationBean myServlet = new ServletRegistrationBean();
myServlet.addUrlMappings("/servlet");
myServlet.setServlet(new MyServlet());
return myServlet;
}

方式二、使用@WebServlet

使用@WebServlet注册,需要在Servlet类上使用该注解即可,但是需要在@Configuration类中使用Spring Boot提供的注解@ServletComponentScan扫描注册相应的Servlet。

注册Filter

方式一、使用FilterRegistrationBean注册

使用FilterRegistrationBean注册Filter,只需要在@Configuration类中加入即可,例如以下代码:

1
2
3
4
5
6
7
@Bean  
public FilterRegistrationBean myFilter() {
FilterRegistrationBean myFilter = new FilterRegistrationBean();
myFilter.addUrlPatterns("/*");
myFilter.setFilter(new MyFilter());
return myFilter;
}

方式二、使用@WebFilter

使用@WebFilter注册,需要在Filter类上使用该注解即可,但是需要在@Configuration类中使用Spring Boot提供的注解@ServletComponentScan扫描注册相应的Filter。

注册Listener

方式一、使用ServletListenerRegistrationBean注册

使用ServletListenerRegistrationBean注册Listener只需要在@Configuration类中加入即可,例如以下代码:

1
2
3
4
5
6
@Bean  
public ServletListenerRegistrationBean<MyListener> myServletListener() {
ServletListenerRegistrationBean<MyListener> myListener = new ServletListenerRegistrationBean<MyListener>();
myListener.setListener(new MyListener());
return myListener;
}

方式二、使用@WebListener

使用@WebListener注册,需要在Filter类上使用该注解即可,但是需要在@Configuration类中使用Spring Boot提供的注解@ServletComponentScan扫描注册相应的Listener。