spring配置set注入时,properties中的name只能使用先前配置过的bean的id。 10C
 <bean id="EmployeeAction" scope="prototype" class="com.tw.web.action.EmployeeAction">      
     <property name="employeeDao" ref="employeeDao"/>
        <property name="baseDao" ref="employeeDao"/>
        <property name="dao" ref="employeeDao"/>
</bean>

以上三种情况:
第一种(employeeDao):可以正确注入
第二种(baseDao):由于配置中有一个id="baseDao"的抽象bean,所以会报错:baseDao这bean是一个抽象bean。
第三种(dao):根本不进入set中。
先前我一直纳闷为什么name和ref的字符串不一样就不能够正确注入。直到看到第二种配置报的错,才发现name直接就对应了配置中bean的id了。
是这样的:
我的配置中确实存在一个id="baseDao"的抽象类
但是在注入时,baseDao只是一个属性。相当于:
public void setBaseDao(IEmployeeDao employeeDao){}
我的配置是:

 <property  name="baseDao", ref="employeeDao" />

那么Spring按理应该是通过ref去找id="employeeDao"的bean然后注入到setBaseDao中。
但是我遇到的问题是,Spring是通过name去找id="baseDao"的bean。
另外,

 <property  name="id", value="1" />

这样的形式也不行。
奇怪的是,配置SessionFactory的时候并没有问题。
刚刚在相关提问中找到一个解决方法:把Struts配置中的class="类全限定名",改成Spring配置的bean的id就行了。还是想请问一下有谁知道是什么问题吗?
谢谢各位!

3个回答

抽象的bean无法被实例化的,当然它也不存在id,name等属性了,这些是在没学习框架之前就知道的,现在你用设值注入来为一个抽象的类创建对象并初始化,怎么可以呢?

mo_fan_qing_wa
modelfrog 回复qq_27658069:你说的问题我还是不太明白,但spring确实是通过ref指向对应的bean的id的, 建议你调试一下,看看程序能走到哪一步出错?
接近 5 年之前 回复
qq_27658069
qq_27658069 name只是一个名字,只是刚好和一个id="baseDao"的抽象bean一样而已。ref引用的是employeeDao。最后报错却是baseDao是一个抽象类。所以我认为spring在这里是通过name去寻找bean,而不是通过ref去找的。我的问题大概就是这样的。文笔不好,可能表述的不是太清楚。
接近 5 年之前 回复
qq_27658069
qq_27658069 问题的关键不是是否抽象bean的问题。我这里name是对应的baseDao是抽象的,但是ref对应的employeeDao却不是。按理来说,注入的bean应该是通过ref去找的,但是我这里却是通过name去找的。
接近 5 年之前 回复

注入时候 name 和 之前配置的id 是没有关系的,只要是相同的类型就行了。但是你的EmployeeAction 里面的set方法要与name一致

setBaseDao (employeeDao baseDao){ this.baseDao =baseDao;}

  <property name="baseDao" ref="employeeDao"/>
name是写在你类中的名称baseDao,ref是你写在类中名称baseDao对应的bean的id
qq_27658069
qq_27658069 我知道。但是现在的问题是:我在Action中写的setBaseDao(IEmployeeDao baseDao)。这种情况下,因为ref是employeeDao,那么注入的也应该是EmployeeDao。但是Spring却报错:baseDao是一个abstract的bean。也就是说,它注入是不是用的ref中的employeeDao,而是找的name对应的baseDao。
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐