美文网首页
原生组件(Servlet)注入的两种方法

原生组件(Servlet)注入的两种方法

作者: bit_拳倾天下 | 来源:发表于2021-03-15 20:32 被阅读0次

1. 使用注解注入

@ServletComponentScan(basePackages = "com.test.package")

指定原生 Servlet 组件所在位置,是下面三种注解生效的前提

@WebServlet(urlPatterns = "/myUrl")

效果类似于 @Controller + @RequestMapping,能够直接响应,但是不会被SpringMVC的拦截器拦截

@WebFilter(urlPatterns={"/css/","/images/"})

标注在过滤器上,定义过滤的内容

@WebListener

标注在监听器上

2. 使用RegistrationBean

就是将 Servlet 用对应的 RegistrationBean 包装一下,然后注入到容器中。ServletRegistrationBean, FilterRegistrationBean, ServletListenerRegistrationBean

@Configuration
public class MyRegistConfig {

    @Bean
    public ServletRegistrationBean myServlet(){
        MyServlet myServlet = new MyServlet();
        return new ServletRegistrationBean(myServlet,"/my","/my02");
    }


    @Bean
    public FilterRegistrationBean myFilter(){
        MyFilter myFilter = new MyFilter();
        //return new FilterRegistrationBean(myFilter,myServlet());//这种方法,用于专门针对 myServlet 组件路径的
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);
        filterRegistrationBean.setUrlPatterns(Arrays.asList("/my","/css/*"));
        return filterRegistrationBean;
    }

    @Bean
    public ServletListenerRegistrationBean myListener(){
        MySwervletContextListener mySwervletContextListener = new MySwervletContextListener();
        return new ServletListenerRegistrationBean(mySwervletContextListener);
    }
}

相关文章

网友评论

      本文标题:原生组件(Servlet)注入的两种方法

      本文链接:https://www.haomeiwen.com/subject/hdllcltx.html