Spring-父类变量注入失败

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/posonrick/article/details/79589788

         昨天遇到一个Action里面Service注入失败,换种说法应该说是根本没有发生注入,本来很简单的一个问题,但由于在项目中多个Action进行了继承,才最终导致了这个看似奇怪的问题。下面小记下这个过程:

收到同事问题,“有个Action请求一直调用报控指针,service一直是空的导致的!”

        初步看了代码及配置,没有发现什么问题,起初怀疑是Action没有get方法所致,然后加上仍然无效;然后单步做了各种变量名的替换,一直一样问题 ,这过程中一直关注java代码确忽略了页面请求,通过页面请求发现代码真正逻辑是页面请求了一个子类Action的方法,而这个方法里面调用了父类的一个方法,此时父类里面的Service一直无法注入,对于上面所提的这种需求,实际上是需要在子类做Spring注入的同时也进行父类的Spring注入,那么这种需要这样的配置:

<bean id="barePhoneAction" class="com.eshore.crm.contrl.termmgr.mgr.action.BarePhoneAction" scope="prototype" parent="termCommonAction">
		<property name="orderVerifyApiFacade" ref="ord.bizprov.orderVerifyApiFacade"/>
		<property name="orderListQryApiFacade" ref="ord.query.orderListQryApiFacade"/>
		<property name="channelQryApiFacade" ref="cfguse.channel.channelQryApiFacade" />
</bean>
 
 

经过上面的设置以后,请求子类的Action方法,子类方法中调用父类方法时,就不会出现父类不发生注入的问题了。


猜你喜欢

转载自blog.csdn.net/posonrick/article/details/79589788