java 无法注入service_java类继承了Filter后,Service无法注入问题剖析

当Java类继承Filter并出现Service无法注入的问题时,本文分析了可能的原因,并提供了两种解决方案:通过ServletContext获取ApplicationContext,或者利用HttpServletRequest获取ServletContext。这两种方法在不同情况下可解决Service注入失败的问题。
摘要由CSDN通过智能技术生成

之前那篇博客里也提到的情况是一样的,通过ApplicationContextUtil工具类来实现service注入,贴一下博客地址https://my.oschina.net/ytliyang/blog/644533,这个在现在的Spring3.0以后偶的项目应该都是没问题的,但是这个项目确实有点老,好像不支持。起初的时候报空指针我就意识到了可能是service没有注入导致的,由以前的经验告诉我肯定是因为继承了filter导致的。

然后上网查相关资料,经常查到的是从在javax.servlet.Filter中直接获取ServletContext

ServletContext context = config.getServletContext();

方案A:

public void init(FilterConfig config) throws ServletException {

// TODO 自动生成方法存根

ServletContext sc = config.getServletContext();

XmlWebApplicationContext cxt = (XmlWebApplicationContext)WebApplicationContextUtils.getWebApplicationContext(sc);

if(cxt != null && cxt.getBean("textDictFactory") != null && textDictFactory == null){

textDictFactory = (TextDictFactory) cxt.getBean("textDictFactory");

System.out.prin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值