在spring-boot项目中如何实现自定义过滤器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
传统的javaEE增加滤波器是在网上。xml中配置,如以下代码:
& lt; filter> & lt; filter-name> TestFilter & lt; filter-class> com.cppba.filter.TestFilter & lt;/filter> & lt; filter-mapping> & lt; filter-name> TestFilter & lt; url-pattern>/* & lt;/url-pattern> & lt; init-param> & lt; param-name> paramName & lt; param-value> paramValue & lt;/init-param> & lt;/filter-mapping>
然而spring-boot中很明显不能这样实现,那怎么办呢?看完下面的教程,答案自然知道了。
<强>老方法(新方法请直接下拉)强>
1。创建自定义过滤器
包com.cppba.filter; 进口javax.servlet。*; 进口java.io.IOException; 公共类TestFilter实现滤波器{ @Override FilterConfig FilterConfig公共空init()抛出ServletException { } @Override 公共空间的doFilter (ServletRequest ServletRequest, ServletResponse ServletResponse, FilterChain FilterChain) 抛出IOException ServletException { System.out.println (“TestFilter"); } @Override 公共空间摧毁(){ } }
2。在ApplicationConfiguration。java中增加一个@ bean
@ bean 公共FilterRegistrationBean testFilterRegistration () { FilterRegistrationBean登记=new FilterRegistrationBean (); 登记。setFilter(新TestFilter ()); registration.addUrlPatterns (“/*”); registration.addInitParameter (“paramName",“paramValue"); registration.setName (“testFilter"); registration.setOrder (1); 返回注册; }
3。启动项目
你会看到控制台打印如下代码:
@Order (1)//重点
@WebFilter (filterName=皌estFilter1" urlpattern=?*”)
公共类TestFilterFirst实现滤波器{
@Override
FilterConfig FilterConfig公共空init()抛出ServletException {
}
@Override
公共空间的doFilter (ServletRequest ServletRequest, ServletResponse ServletResponse, FilterChain FilterChain)
抛出IOException ServletException {
System.out.println (“TestFilter1");
filterChain.doFilter (servletRequest servletResponse);
}
@Override
公共空间摧毁(){
}
}
比较核心的代码是自定义类上面加上@WebFilter,其中@Order注解表示执行过滤顺序,值越小,越先执行
我们在spring-boot的入口处加上如下注解@ServletComponentScan:
@SpringBootApplication (scanBasePackages=癱om.cppba")//重点 @ServletComponentScan 公共类应用程序{ 公共静态void main (String [] args)抛出UnknownHostException { SpringApplication应用=new SpringApplication (Application.class); 环境环境=app.run (args) .getEnvironment (); } }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。