仅供参考
目录
一、web原生组件注入
1.1、使用Servlet API
@WebServlet(urlPatterns = "/my"):效果:直接响应,没有经过Spring的拦截器
@WebServlet(urlPatterns = "/my")//直接响应,没有经过spring拦截器
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getWriter().write("111111");
}
}
@ServletComponentScan(basePackages = "com.cjc.boot")//指定原生servlet组件放在哪里
@WebFilter(urlPatterns = {"/css/*","/images/*"})
@Slf4j
@WebFilter(urlPatterns = {"/css/*","/images/*"})
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
log.info("初始化完成");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
log.info("MyFilter工作");
filterChain.doFilter(servletRequest,servletResponse);
}
@Override
public void destroy() {
log.info("MyFilter销毁");
}
}
@WebListener
@Slf4j
@WebListener
public class MySwervletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
log.info("MySwervletContextListener监听到项目初始化工作");
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
log.info("MySwervletContextListener监听到项目销毁");
}
}
1.2、使用RegistrationBean
//保证依赖的组件是单实例的
@Configuration(proxyBeanMethods = true)
public class MyRegistConfig {
@Bean
public ServletRegistrationBean myServlet(){
return new ServletRegistrationBean(new MyServlet(),"/my");
}
@Bean
public FilterRegistrationBean myFilter(){
// return new FilterRegistrationBean(new MyFilter(),myServlet());
FilterRegistrationBean filterFilterRegistrationBean = new FilterRegistrationBean(new MyFilter());
filterFilterRegistrationBean.setUrlPatterns(Arrays.asList("/my","/css/*"));
return filterFilterRegistrationBean;
}
@Bean
public ServletListenerRegistrationBean myListener(){
MySwervletContextListener mySwervletContextListener = new MySwervletContextListener();
return new ServletListenerRegistrationBean(mySwervletContextListener);
}
}