博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot中使用filter时注入bean都是null的解决办法
阅读量:6587 次
发布时间:2019-06-24

本文共 1206 字,大约阅读时间需要 4 分钟。

  hot3.png

写得不好,不对的地方请多指教.

在springboot中 使用了filter, 并且注入了业务bean和redis工具类, 最后一上tomcat全完蛋,注入的bean都是null, 只能自行填坑 . 

首先是在使用@webfilter的情况下,不上外部tomcat时是没有问题的, 所以如果你的项目不上外部tomcat应该不会踩到坑里来

填坑:

1. 去掉@webfilter的那些注解, 这个filter应该是一个普通的类,没有注解,例如:

public class UploadFilter implements Filter {    Logger logger = LoggerFactory.getLogger(UploadFilter.class);    //可以注入了    @Autowired    private RedisKit redisKit;    //可以注入了    @Autowired    private SchoolDeviceService schoolDeviceService;.....}

 

2. 新增一个config类,用来手工创建filter的bean, 例如:

@Configurationpublic class WebConfig {    @Bean    public Filter uploadFilter() {        return new UploadFilter();    }    @Bean    public FilterRegistrationBean uploadFilterRegistration() {        FilterRegistrationBean registration = new FilterRegistrationBean();        registration.setFilter(new DelegatingFilterProxy("uploadFilter"));        registration.addUrlPatterns("/uploadDatas");        registration.setName("uploadFilter");        registration.setOrder(1);        return registration;    }}

然后,就没然后了, 现在业务bean就不会是null. 其实就是回到原来的手动方式声明filter

interceptor也有这样的情况, 可以参考https://my.oschina.net/u/1790105/blog/1490098,感谢作者

如果有多个filter怎么办? 自行找找配置

转载于:https://my.oschina.net/goulin/blog/1820070

你可能感兴趣的文章
spark-shell开发wordcount程序
查看>>
DNS正反解析
查看>>
数据库与监控安全
查看>>
算法研发---对宏定义#define相关研究
查看>>
Linux下搭建FTP服务器
查看>>
浅析Mysql的隔离级别及MVCC
查看>>
1.3 Shell脚本编程基础之条件测试
查看>>
JAVA程序员代表大众车,C++程序员代表捷豹,看看各类程序员们代表着什么车
查看>>
centOS7下安装GUI图形界面
查看>>
postgresql 中int4rang类型项目应用
查看>>
postfix疯狂外发垃圾邮件之分析与解决
查看>>
test和read命令
查看>>
ubuntu无法激活输入法,Zendstudio无法激活中文输入法问题
查看>>
《使命召唤7:黑色行动》有什么简单办法进入僵尸模式
查看>>
ChannelOption.TCP_NODELAY, true->浅谈tcp_nodelay的作用
查看>>
UEFI win7系统的安装
查看>>
Oracle 补丁体系 及 opatch 工具 介绍
查看>>
java的内部字符编码
查看>>
mysql选择数据库创建数据库
查看>>
openstack运维实战系列(一)之keystone用户建立
查看>>