今天在开发过程中遇到一个很坑的问题:base action中的service总是为空。
被困扰良久。
各种配置都没有问题。但是这个service就是为空。
也没有进base action 中的getXxService()和setXxService()这两个方法。这就太奇怪啦。这是为什么呢?
……
……
……
……
首先描述下基本情况:
1、有一个action暂且命名为TestAction。并且TestAciton extends BaseAction 。
2、BaseAciton 中有个私有变量:privateTestService testService;(当然还有对应的get和set方法)
在配置都对的情况下,这个testService是会有值的。
最终原因:
TestAction中居然也有一个和BaseAction中同样的私有变量privateTestService testService;以及对应的get和set方法。
这样就出问题了。注入service时,调用的是TestAction中的get和set方法,这样TestAction中的testService有了值,而BaseAction中的testService却是空的。
回想之前的操作:我在TestAction写了testService。然后有同事提取了一下代码(将公用代码抽出来),然后我又没有删除原来的代码,于是错误产生了。
特此记录!
本文记录了一次开发过程中遇到的问题:基类中的Service总是为空。经过排查发现是因为派生类中重复定义了相同的属性及get/set方法,导致依赖注入失败。文章详细解释了问题的原因及其解决方案。

1万+

被折叠的 条评论
为什么被折叠?



