当前位置: 监察器 >> 监察器资源 >> Springboot入门之四进行自定义
SpringBoot默认以jar包的方式启动内部自定义的Servlet组件,没有web.xml文件,这种情况下我们不禁会考虑,那之前使用SSM框架时的自定义Servlet、过滤器及监听器要如何配置呢?今天就来解答这个问题:
前期准备工作:
创建SpringBoot工程,不懂的可以查阅我之前得文档使用IDEA创建Springboot工程的两种方式,创建CustomerServletConfigurer配置类如下,用于进行配置,名字可以自取
ConfigurationpublicclassCustomerServletConfigurer{}自定义Servlet配置
创建MyServlet类实现HttpServlet接口,如下
publicclassMyServletextendsHttpServlet{protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{System.out.println(MyServlet.doGet);doPost(req,resp);}protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{System.out.println(MyServlet.doPost);}}
在CustomerServletConfigurer配置类中配置ServletRegistrationBean的返回类,如下
Bean//配置自定义的ServletpublicServletRegistrationBeanservletRegistrationBean(){ServletRegistrationBeanservletRegistrationBean=newServletRegistrationBean();servletRegistrationBean.setServlet(newMyServlet());servletRegistrationBean.addUrlMappings(/myServlet);returnservletRegistrationBean;}通过该配置可实现在客户端访问/myServlet相关请求时使用自定义的MyServlet进行处理
自定义Filter配置
创建MyFilter类,实现Filter接口,实现相关方法,如下
publicclassMyFilterimplementsFilter{publicvoidinit(FilterConfigfilterConfig)throwsServletException{System.out.println(MyFilter.init);}publicvoiddoFilter(ServletRequestservletRequest,ServletResponseservletResponse,FilterChainfilterChain)throwsIOException,ServletException{System.out.println(MyFilter.doFilter);}publicvoiddestroy(){System.out.println(MyFilter.destroy);}}
在CustomerServletConfigurer配置类中配置FilterRegistrationBean的返回类,如下
Bean//配置自定义的FilterpublicFilterRegistrationBeanfilterRegistrationBean(){FilterRegistrationBeanfilterRegistrationBean=newFilterRegistrationBean();filterRegistrationBean.setFilter(newMyFilter());filterRegistrationBean.addUrlPatterns(/myFilter);returnfilterRegistrationBean;}通过该配置可实现在客户端访问/myFilter时先使用过滤器过滤
自定义Listener配置
创建MyListener类,实现ServletContextListener接口,实现相关方法,如下
publicclassMyListenerimplementsServletContextListener{publicvoidcontextInitialized(ServletContextEventsce){System.out.println(MyListener.contextInitialized);}publicvoidcontextDestroyed(ServletContextEventsce){System.out.println(MyListener.contextDestroyed);}}
在CustomerServletConfigurer配置类中配置FilterRegistrationBean的返回类,如下
Bean//配置自定义的ListenerpublicServletListenerRegistrationBeanservletListenerRegistrationBean(){ServletListenerRegistrationBeanservletListenerRegistrationBean=newServletListenerRegistrationBean();servletListenerRegistrationBean.setListener(newMyListener());returnservletListenerRegistrationBean;}通过该配置可实现Servlet在创建及销毁时执行相应方法
江山父老能容我,不使人间造孽钱,本人小白,如有问题,欢迎指教