SpringBoot:Web原生组件的注入
1.使用Servlet API
在配置类中加入注解:
@ServletComponentScan(basePackages = "com.tinstu") :指定原生Servlet组件都放在那里
新建servlet加入注解:@WebServlet(urlPatterns = "/my") 效果:直接响应,没有经过Spring的拦截器
@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {
System.out.println("5555");
}
}
@WebFilter(urlPatterns={"/css/*","/images/*"})
@WebFilter(urlPatterns = "/tp")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("filter初始化完成");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("filter工作");
//放行
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
System.out.println("filter销毁");
}
}
@WebListener
@WebListener
public class MyListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("监听到项目初始化完成");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("监听到项目销毁");
}
}
使用RegistrationBean
ServletRegistrationBean
, FilterRegistrationBean
, and ServletListenerRegistrationBean
@Configuration(proxyBeanMethods = true) //保证依赖的组件始终都单实例的
public class MyRegistConfig {
@Bean
public ServletRegistrationBean myServlet(){
MyServlet myServlet = new MyServlet();
return new ServletRegistrationBean(myServlet,"tp1","tp");
}
@Bean
public FilterRegistrationBean myFilter(){
MyFilter myFilter = new MyFilter();
// return new FilterRegistrationBean(myFilter,myServlet());
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setUrlPatterns(Arrays.asList("/tp","/pt/*"));
return filterRegistrationBean;
}
@Bean
public ServletRegistrationBean servletRegistrationBean(){
MyListener myListener = new MyListener();
return new ServletRegistrationBean((Servlet) myListener);
}
}
DispatchServlet注入原理
阅读剩余
版权声明:
作者:Tin
链接:http://www.tinstu.com/1625.html
文章版权归作者所有,未经允许请勿转载。
THE END