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

我们都知道java在抽象类中是不能注入属性的,但是有时候在抽象类中需要调另一个实例bean,如果都在子类中注入,那么当有很多子类时改造会比较大,有什么好的办法就是不需要改... 我们都知道java在抽象类中是不能注入属性的,但是有时候在抽象类中需要调另一个实例bean,如果都在子类中注入,那么当有很多子类时改造会比较大,有什么好的办法就是不需要改动子类来实现?
我想到一种方法是在抽象类和子类之间加一层,用于属性注入,但是这样的话感觉就设计之初就不用搞出抽象类了,所以被我排除了,请教还有没有其他优美的方式?
展开
 我来答
winters1224
2013-11-22 · TA获得超过398个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:39.3万
展开全部
题主是在用spring做注入?

抽象类是可以用spring注入属性的。我的代码中有个这样的例子:
<bean id="BaseEventAction" class="com.sinosig.evaluation.fcff.web.event.BasicEventAction"
abstract="true" parent="BaseAction">
<property name="rowFactory" ref="FcffCacheAdapter" />
<property name="caculate" ref="CaculateService" />
<property name="diffusion" ref="DeffusionService" />
</bean>

<bean id="MethodChangedAction"
class="com.sinosig.evaluation.fcff.web.event.MethodChagedAction"
scope="prototype" parent="BaseEventAction" />

public abstract class BasicEventAction extends BaseAction implements
EventAction {

……

}

public class MethodChagedAction extends BasicEventAction {
……

}

spring框架中的 abstract="true" 是告诉spring框架不要去实例化这个类而已。但是在spring的配置中,仍然会有相关的注入属性的配置。子类的配置会继承父类的配置,然后spring框架再根据子类的最终配置去实例化和注入。
herox_hu
2013-11-22 · TA获得超过776个赞
知道小有建树答主
回答量:1122
采纳率:0%
帮助的人:325万
展开全部
首先纠正你一个错误。
抽象内是可以有它自己的属性的。
所以你完全可以将一些共通的属性写在抽象内里面。
更多追问追答
追问
这个学过java的人都知道。答非所问。
追答
那 麻烦 把问题 说的清楚些

在spring 中:
Spring中注入抽象bean
一般情况下是很简单的,是在标签中写入abstract=true就可以的
有可能会出现这样的情况:
定义个抽象类 A
我们在A里面注入了两个属性 B和C
其中B和C也在标签定义

此时我们需要有一个具体的实现类AA继承自A抽象类
同时我们在AA中新添加了一个属性D,同时这个D也需要Sping注入进来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tanlin111111
2013-11-22
知道答主
回答量:41
采纳率:0%
帮助的人:15.2万
展开全部
可以考虑提出来放到工具类中,不一定要放到抽象层。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式