下面是我测试的一些东西,不知道对不
<bean id="injectService" class="com.imooc.service.InjectServiceImple">
<!-- 这里设置参数给injectService所对应的类,这里是通过设值注入来实现的,设值注入的
实质其实是调用setter方法,比如
<property name="injectDAO" ref="injectDao"/>
其实在执行的时候是调用setInjectDAO()这个方法。一定要注意这点。
,而fef中的值
是调用要指定类的id(就是下面这个id),并且必须要有默认的构造器,不然要报错 -->
这是api对property里面name属性的解释:
The name of the property, following JavaBean naming conventions.
<property name="injectDAO" ref="injectDao"/>
<!-- 这里有一点要非常注意的是,通过构造注入的name不是成员变量的名称,而是构造方法中的那个参数名称,特别注意 -->
这是api对constructor-arg中name属性的介绍:
The exact name of the argument in the constructor argument list(我只截了第一句,已经很明白了,具体可以去看看)
<constructor-arg name="inject" ref="injectDao"></constructor-arg>
</bean>
<bean id="injectDao" class="com.imooc.dao.InjectDAOImple"></bean>
谢谢楼主
楼上说的对!!!
<!-- 这里有一点要非常注意的是,通过构造注入的name不是成员变量的名称,而是构造方法中的那个参数名称,特别注意 -->
我觉得这里可以这么理解,构造函数里的形参最后是要赋值给成员变量的。
对的,我也这样试过