自定义Springboot三大组件

自定义Springboot三大组件:servlet,filter,listener

一、先自定义出MyServlet、MyFilter、MyListener
1、自定义servlet:

/**
 * 自定义servlet
 */
public class MyServlet extends HttpServlet {
    @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 {
        PrintWriter writer = resp.getWriter();
        writer.println("myServlet");
        writer.flush();
        writer.close();
        System.out.println("myServlet2222");
    }

}

2、自定义filter:

/**
 * 自定义过滤器
 */
public class MyFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("前置过滤");
        filterChain.doFilter(servletRequest, servletResponse);
        System.out.println("后置过滤");
    }

    @Override
    public void destroy() {

    }
}

3、自定义listener:

/**
 * 自定义监听器
 */
public class MyListener implements ServletContextListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("创建了监听器");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("销毁了监听器");
    }
}

二、将自定义的三大组件注册到配置类中

@Configuration
public class MyConfig implements WebMvcConfigurer {
    

    /*注册自定义servlet*/
    @Bean
    public MyServlet myServlet(){
        return new MyServlet();
    }

    @Bean
    public ServletRegistrationBean<MyServlet> myServletServletRegistrationBean(MyServlet myServlet){
        ServletRegistrationBean<MyServlet> servletServletRegistrationBean = new ServletRegistrationBean<>();
        servletServletRegistrationBean.setServlet(myServlet);
        servletServletRegistrationBean.setUrlMappings(Arrays.asList("/user1","/user2"));
        return servletServletRegistrationBean;
    }


    /*注册自定义过滤器*/
    @Bean
    public MyFilter myFilter(){
        return new MyFilter();
    }

    @Bean
    public FilterRegistrationBean<MyFilter> myFilterFilterRegistrationBean(MyFilter myFilter){
        FilterRegistrationBean<MyFilter> filterFilterRegistrationBean = new FilterRegistrationBean<>();
        filterFilterRegistrationBean.setFilter(myFilter);
        filterFilterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
        return filterFilterRegistrationBean;
    }

    /*注册自定义监听器*/
    @Bean
    public MyListener myListener(){
        return new MyListener();
    }

    @Bean
    public ServletListenerRegistrationBean servletListenerRegistrationBean(MyListener myListener){
        ServletListenerRegistrationBean<MyListener> servletListenerRegistrationBean = new ServletListenerRegistrationBean<>();
        servletListenerRegistrationBean.setListener(myListener);
        return servletListenerRegistrationBean;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值