springboot中注入FilterRegistrationBean不生效原因
SpringBoot注入 原因 生效
2023-09-14 09:06:18 时间
springboot中注入FilterRegistrationBean不生效原因
回顾
最近自定义了两个过滤器,接口请求返回加密
和sql注入处理
过滤器,因为在封装一些工具包,我在单独调好之后,就打算做成一个注解,像springboot
启动类上加@EnableScheduling
一样,可以随意控制,当我不想让这俩过滤器生效的时候,那就不加这个注解就可以了。
当然我想到了FilterRegistrationBean
的使用方法,注入这两个过滤器。
但是当我写完之后,打成包之后,发现只有sql注入过滤器
生效。
原因
原因就是我通过@Bean
注解注入FilterRegistrationBean
时,没有对它们起别名,造成冲突,只能注入一个。
我的工程里,写了两个下边的方法:
注入加密过滤器
/**
* @return 注入加密过滤器
*/
@Bean
public FilterRegistrationBean filterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new EncryptionFilter());
registration.addUrlPatterns("/*");
registration.setName("encryptionFilter");
registration.setOrder(1);
return registration;
}
注入sql注入过滤器
/**
* @return 注入加密过滤器
*/
@Bean
public 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;
}
相关文章
- Java项目毕业设计:基于springboot+vue的电影视频网站系统「建议收藏」
- SpringBoot的启动流程_springboot启动卡住了
- 解决springboot 2.0集成elasticsearch 7.6.2 查询总数为10000
- springboot连接mysql数据库测试
- springboot启动监听线程_Springboot启动流程
- Springboot启动报错[ main] o.s.boot.SpringApplication: Application run failed(佷有可能是版本问题)
- Springboot集成swagger_springboot nginx
- springboot详细讲解_Springboot项目
- springboot jdbc template_Springboot教程
- springBoot整合Mybatis-Plus需要的依赖_springboot中文手册
- springboot集成activeMq
- SpringBoot整合达梦数据库
- springboot 静态方法中使用@Autowired注入配置和Bean
- Shiro整合SpringBoot项目实战
- SpringBoot(一)走进Springboot的世界详解编程语言
- SpringBoot之异常捕获(N)详解编程语言
- 编辑 SpringBoot | 第五章:多环境配置详解编程语言
- SpringBoot拦截器中Bean无法注入详解编程语言
- springboot-swagger2 自动化api文档详解编程语言
- springboot之helloworld详解编程语言