Spring Boot 学习(7)springboot 整合三大组件(Servlet、Filter、Listener)
2020-01-11 08:16
1291 查看
写在前面:最近利用晚上的时间在网上看视频学习Spring Boot,这博客是对学习的一点点总结及记录,技术是开源的、知识是共享的。
如果你对Spring Boot 感兴趣,可以关注我的动态,我们一起学习。用知识改变命运,让家人过上更好的生活。
文章目录
一、配置嵌入式的 Servlet 容器
作用:用来修改 Servlet 容器的配置
注意:Spring Boot 2.x版本以前有一定的区别,以前是 EmbeddedServletContainerCustomizer,而在新版本中使用 WebServerFactoryCustomizer
/** * 配置嵌入式的Servlet容器 * * @return */ @Bean //一定要将这个定制器加入到容器中 public WebServerFactoryCustomizer webServerFactory() { return new WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>() { //定制嵌入式的Servlet容器相关的规则 @Override public void customize(ConfigurableServletWebServerFactory factory) { factory.setPort(8088); } }; }
二、整合三大组件(Servlet、Filter、Listener)
由于 SpringBoot 默认是利用 jar 包的方式启动嵌入式的 Servle t容器来启动 SpringBoot 的web应用,没有 web.xml 文件。因此用以下的方式进行注册三大组件。
1、注册 Servlet
MySevlet
public class MySevlet extends HttpServlet { /** * 处理get请求 * * @param req * @param resp * @throws ServletException * @throws IOException */ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().write("hello MyServlet"); } }
服务器有关的配置全部放在 MyServerConfig
@Configuration public class MyServerConfig { /** * 注册servlet组件 * * @return */ @Bean public ServletRegistrationBean myServlet() { ServletRegistrationBean registrationBean = new ServletRegistrationBean(new MySevlet(), "/myServlet"); // 设置启动顺序 registrationBean.setLoadOnStartup(1); return registrationBean; } }
2、注册 Filter
MyFilter
public class MyFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("MyFilter 执行了。。。"); // 放行请求 filterChain.doFilter(servletRequest, servletResponse); } @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void destroy() { } }
/** * 注册filter组件 * * @return */ @Bean public FilterRegistrationBean myFilter() { FilterRegistrationBean<Filter> filterRegistrationBean = new FilterRegistrationBean<>(); // 设置filter filterRegistrationBean.setFilter(new MyFilter()); // 设置拦截uri的路径 filterRegistrationBean.setUrlPatterns(Arrays.asList("/hello", "/myServlet")); return filterRegistrationBean; }
3、注册 Listener
MyListener
public class MyListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System.out.println("当前web应用启动。。。"); } @Override public void contextDestroyed(ServletContextEvent sce) { System.out.println("当前web应用销毁。。。"); } }
/** * 注册Listener * * @return */ @Bean public ServletListenerRegistrationBean myListener() { ServletListenerRegistrationBean<MyListener> registrationBean = new ServletListenerRegistrationBean<>(new MyListener()); return registrationBean; }
- 点赞 8
- 收藏
- 分享
- 文章举报
相关文章推荐
- spring boot整合servlet、filter、Listener等组件方式
- SpringBoot1.5.12.RELEASE注册Servlet三大组件【Servlet、Filter、Listener】
- SpringBoot(四)-- 整合Servlet、Filter、Listener
- spring boot学习笔记之与servlet、Filter、Listener集成
- SpringBoot学习教程 - 03 - 配置Servlet、Filter、Listener
- 1.SpringBoot整合Filter和Servlet
- springboot 2.0.0.M7 之 Servlet Listener Filter
- SpringBoot初始教程之Servlet、Filter、Listener配置(七)
- Spring Boot - Web 应用开发 - Servlet, Filter, Listener
- Spring Boot 编写Servlet、Filter、Listener、Interceptor的方法
- 18.玩转Spring Boot 注册Servlet、Filter、Listener
- 【spring】SpringBoot之Servlet、Filter、Listener配置
- SpringBoot之Servlet、Filter、Listener配置
- Spring Boot中Servlet&Filter&Listener&Interceptor的使用
- SpringBoot初始教程之Servlet、Filter、Listener配置
- SpringBoot 之Servlet、 Filter、Listener应用开发
- SpringBoot整合web时报错Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter
- spring-boot如何定义一个servlet,filter,listener
- Spring Boot参考教程(六)Spring Boot配置Servlet,Filter,Listener,Interceptor
- spring boot(18)-servlet、filter、listener