Springboot实现过滤器的两种方式
Springboot实现过滤器有以下俩种方式,第一种方式俩步走,即向spring容器注册filter
第一种:
1.Filter过滤器具体实现类
@Component @Slf4j public class MyTestFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { log.info("[ {} ] 创建啦...", this.getClass().getSimpleName()); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { log.info("[ {} ] 执行啦...", this.getClass().getSimpleName()); chain.doFilter(request, response); } @Override public void destroy() { log.info("[ {} ] 被摧毁啦...", this.getClass().getSimpleName()); } }
2.向spring容器注册filter
@Configuration public class FilterConfig { @Resource private MyTestFilter myTestFilter; @Bean public FilterRegistrationBean testFilterRegistration() { FilterRegistrationBean registration = new FilterRegistrationBean(myTestFilter); registration.addUrlPatterns("/filter/*"); registration.setName("testFilter"); registration.setOrder(1); return registration; } }
第二种:
通过@WebFilter 注解来配置
@Component @WebFilter(urlPatterns = "/filter/*", filterName = "myTestFilter") @Slf4 public class MyTestFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { log.info("[ {} ] 创建啦...", this.getClass().getSimpleName()); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { log.info("[ {} ] 执行啦...", this.getClass().getSimpleName()); chain.doFilter(request, response); } @Override public void destroy() { log.info("[ {} ] 被摧毁啦...", this.getClass().getSimpleName()); } }
还需要在 SpringBootApplication 上使用@ServletComponentScan
注解后
Servlet可以直接通过@WebServlet注解自动注册
Filter可以直接通过@WebFilter注解自动注册
Listener可以直接通过@WebListener 注解自动注册
到此这篇关于Springboot实现过滤器的文章就介绍到这了,更多相关Springboot过滤器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring Boot实现图片上传/加水印一把梭操作实例代码
这篇文章主要给大家介绍了关于Spring Boot实现图片上传/加水印一把梭操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2018-11-11Java多线程中Thread.currentThread()和this的区别详解
这篇文章主要介绍了Java多线程中Thread.currentThread()和this的区别详解,Thread.currentThread()方法返回的是对当前正在执行的线程对象的引用,this代表的是当前调用它所在函数所属的对象的引用,需要的朋友可以参考下2023-08-08Idea跑的项目没问题将程序install成jar包运行报错空指针的问题
这篇文章主要介绍了Idea跑的项目没问题,将程序install成jar包运行报错空指针的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-06-06springboot项目中controller层与前端的参数传递方式
这篇文章主要介绍了springboot项目中controller层与前端的参数传递方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-10-10
最新评论