网站源码分享平台,一级造价工程师报名时间2023年,郑州网站推广公司电话,做网站建本地环境作用springboot中注入FilterRegistrationBean不生效原因
回顾
最近自定义了两个过滤器#xff0c;接口请求返回加密和sql注入处理过滤器#xff0c;因为在封装一些工具包#xff0c;我在单独调好之后#xff0c;就打算做成一个注解#xff0c;像springboot启动类上加EnableS…springboot中注入FilterRegistrationBean不生效原因
回顾
最近自定义了两个过滤器接口请求返回加密和sql注入处理过滤器因为在封装一些工具包我在单独调好之后就打算做成一个注解像springboot启动类上加EnableScheduling一样可以随意控制当我不想让这俩过滤器生效的时候那就不加这个注解就可以了。 当然我想到了FilterRegistrationBean的使用方法注入这两个过滤器。 但是当我写完之后打成包之后发现只有sql注入过滤器生效。
原因
原因就是我通过Bean注解注入FilterRegistrationBean时没有对它们起别名造成冲突只能注入一个。 我的工程里写了两个下边的方法
注入加密过滤器 /*** return 注入加密过滤器*/Beanpublic FilterRegistrationBean filterRegistration() {FilterRegistrationBean registration new FilterRegistrationBean();registration.setFilter(new EncryptionFilter());registration.addUrlPatterns(/*);registration.setName(encryptionFilter);registration.setOrder(1);return registration;}注入sql注入过滤器 /*** return 注入加密过滤器*/Beanpublic FilterRegistrationBean filterRegistration() {FilterRegistrationBean registration new FilterRegistrationBean();registration.setFilter(new SqlInjectManagerFilter());registration.addUrlPatterns(/*);registration.setName(sqlInjectManagerFilter);registration.setOrder(2);return registration;}这个问题虽然简单但是确实影响到我思路了我最初一直在考虑是不是我做的springboot启动类加注解触发过滤器注入的方式不对也是因为我看了下EnableTransactionManagement的注入方式我差点就怀疑Import在打成工具包后不能多个使用的问题。尴尬~~~ 当我一比较这俩方法的时候我才怀疑到名字冲突了。因此就分别对它们加了名称如下 /*** return 注入加密过滤器*/Bean(name encryptionFilter)public FilterRegistrationBean filterRegistration() {FilterRegistrationBean registration new FilterRegistrationBean();registration.setFilter(new EncryptionFilter());registration.addUrlPatterns(/*);registration.setName(encryptionFilter);registration.setOrder(1);return registration;}/*** return 注入加密过滤器*/Bean(name sqlInjectManagerFilter)public FilterRegistrationBean filterRegistration() {FilterRegistrationBean registration new FilterRegistrationBean();registration.setFilter(new SqlInjectManagerFilter());registration.addUrlPatterns(/*);registration.setName(sqlInjectManagerFilter);registration.setOrder(2);return registration;}