Spring Boot提供了 ServletRegistrationBean
,FilterRegistrationBean
,ServletListenerRegistrationBean
这3个东西来进行配置Servlet、Filter、Listener。
通过自定义配置文件WebConfig.java注册Servlet、Filter、Listener。
- import java.util.ArrayList;
- import java.util.EventListener;
- import java.util.List;
- import org.springframework.boot.context.embedded.FilterRegistrationBean;
- import org.springframework.boot.context.embedded.ServletListenerRegistrationBean;
- import org.springframework.boot.context.embedded.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
- import com.tianshouzhi.springbootstudy.web.filter.DemoFilter;
- import com.tianshouzhi.springbootstudy.web.listener.DemoListener;
- import com.tianshouzhi.springbootstudy.web.servlet.DemoServlet;
- @Configuration
- public class WebConfig extends WebMvcConfigurerAdapter{
- @Bean
- public FilterRegistrationBean getDemoFilter(){
- DemoFilter demoFilter = new DemoFilter();
- FilterRegistrationBean registrationBean = new FilterRegistrationBean();
- registrationBean.setFilter(demoFilter);
- List<String> urlPatterns = new ArrayList<String>();
- urlPatterns.add("/*");//拦截路径,可以添加多个
- registrationBean.setUrlPatterns(urlPatterns);
- registrationBean.setOrder(1);
- return registrationBean;
- }
- @Bean
- public ServletRegistrationBean getDemoServlet(){
- DemoServlet demoServlet = new DemoServlet();
- ServletRegistrationBean registrationBean = new ServletRegistrationBean();
- registrationBean.setServlet(demoServlet);
- List<String> urlMappings=new ArrayList<String>();
- urlMappings.add("/demoservlet");访问,可以添加多个
- registrationBean.setUrlMappings(urlMappings);
- registrationBean.setLoadOnStartup(1);
- return registrationBean;
- }
- @Bean
- public ServletListenerRegistrationBean<EventListener> getDemoListener(){
- ServletListenerRegistrationBean<EventListener> registrationBean = new ServletListenerRegistrationBean<>();
- registrationBean.setListener(new DemoListener());
- //registrationBean.setOrder(1);
- return registrationBean;
- }