【坑】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。。

网上找到的一个解决方法。。不知道有没有更好的。。总感觉这样写很坑。。

转载于:https://www.cnblogs.com/shanelau/p/7069646.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值