spring 中,能不能为抽象类注入属性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 中,能不能为抽象类注入属性?相关的知识,希望对你有一定的参考价值。

<bean id="aacVerify" class="com.yinbo.jhtpay.service.merchant.autoquerycheck.AutoAccountCheckVerify">
<property name="commonDAO" ref="CommonDAO"></property>
</bean>
<bean id="autoAccountQuery" class="com.yinbo.jhtpay.service.merchant.autoquerycheck.AutoAccountQuery" abstract="true">

<property name="checkUtils" ref="aacVerify"></property>
</bean>

下面是抽象类
public abstract class AutoAccountQuery
private AutoAccountCheckVerify checkUtils;
有set方法,为啥每次进来这个类,checkUtils都为空?
但有解决办法撒,将CommonDAO 注入它的子类就行了撒

参考技术A 抽象类不能生成实例对象,spring无法注入
因为spring的原理是启动服务器时读取配置文件,取得类名后利用反射机制在spring上下文中生成一个单例的对象,由spring注入属性并维护此对象的状态,抽象类在反射生成对象时就已经失败了,后面的不会进行本回答被提问者采纳
参考技术B 如果你的子类需要使用你父类中的属性的话,那你父类里面的属性肯定就是protected,这样
你直接注入子类的属性不就行了吗?
参考技术C 一楼正解!

以上是关于spring 中,能不能为抽象类注入属性?的主要内容,如果未能解决你的问题,请参考以下文章

java在抽象类中注入属性架构设计

spring gclib final @Transactional

spring 抽象类注入问题

Spring 用注解Annotation注入 abstract 抽象父类的属性

聊聊抽象类和接口

聊聊抽象类和接口