【坑】Spring中抽象父類屬性注入,子類調用父類方法使用父類注入屬性


運行環境

idea 2017.1.1
spring 3.2.9.RELEASE

需求背景

需要實現一個功能,該功能有2個場景A、B,大同小異
抽象一個抽象基類Base,實現了基本相同的方法BaseMethod,其中使用到Bean類中的方法
A、B分別繼承Base,重寫BaseMethod方法,在調用super.BaseMethod()的基礎上補充自己的差異代碼

錯誤實現與描述

1、在Base基類中注入Bean,使用@Resource注解,在子類A、B中調用super.BaseMethod()時,其中的Bean報空指針
——不能使用注解注入抽象類的屬性?
2、在bean.xml中配置化注入Bean,配置bean時標明abstract="true",但部署報錯
——沒有在類中實現setter方法。。
3、實現了setter方法,部署成功,但是運行時Bean仍然報空指針
——

解決方法

1、在beans.xml中配置注入,配置bean時標明abstract="true"

        <bean id="baseBean"  class="com.shane.Base"  abstract="true">
		<property name="bean" ref="bean"></property>
	</bean>

2、在Base中實現Bean的setter
3、在子類中也要實現setter。。

網上找到的一個解決方法。。不知道有沒有更好的。。總感覺這樣寫很坑。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM