原文地址:http://www.cnblogs.com/RunForLove/p/5528004.html
1.首先,区分清楚什么是byType,什么是byName。
<bean id="userServiceImpl" class="cn.com.bochy.service.impl.UserServiceImpl" autowire="byName">
</bean>
<bean id="userDao" class="cn.com.bochy.dao.impl.UserDaoImpl"> </bean>
比如说如上这段代码,byName
就是通过Bean的id或者name,byType
就是按Bean的Class的类型。
若autowire="byType"意思是通过 class="cn.com.bochy.dao.impl.UserDaoImpl"来查找UserDaoImpl下所有的对象。
代码autowire="byName"意思是通过id="userDao"来查找Bean中的userDao对象
建议看 《Spring in Action》 第三章第一节,“自动装配 Bean 属性”
在spring中@Autowired注入规则:
1.@Autowired默认是按照byType进行注入的
二.spring注入的基本语法如下:
xml中语法如下:<bean id="beanId" class="包名.类名">
如果是属性注入,需要为每一个依赖类创建相应的getter和setter方法。
如果是构造方法注入,需要为依赖类创建相应的构造方法。
属性注入的语法如下:
<bean id="被注入的类的beanId" class="包名.类名" />
<bean id="beanId" class="包名.类名">
<property name="被注入的bean的名字" ref="被注入的类的beanId"></property>
</bean>
如例子:
<bean id="userService" class="com.uni2uni.spring.service.impl.UserService"><property name="userDao" ref="userDao"></property></bean>
<bean id="userDao" class="com.uni2uni.spring.dao.impl.UserDao" />
因为UserService依赖于UserDao,因此需要在userService中创建相应的getter和setter方法。