SpringBoot Filter中注入Bean

SpringBoot Filter中注入Bean,第1张

由于web应用启动的顺序顺序的原因(listener->filter->servlet),在Filter中注入Bean是不会成功的。

网上由很多的实现方式来实现在Filter中注入Bean,这里,我换一种方式,给Filter添加一个构造方法,在初始化Filter的时候把Bean实例传入,这里以Shiro中的拦截remmeberMe的Filter为例:

然后,在 Shiro 的配置文件中初始化 AddPrincipalToSessionFilter :

最后帮朋友打个小广告

一个有趣的迷你小程序

首先创建一个用来保存ApplicationContext对象的工具

然后在Application启动类上方增加如下注解,Application启动时就会调用该工具类的setApplicationContext方法

现在就可以通过工具类直接在普通类里获取Spring管理的Bean了

通过实现 ApplicationContextAware 接口,通过Spring启动过程中回调 setApplicationContext 接口,获取spring的IOC容器,然后就可以注册bean到Spring容器中了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11906096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存