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進行注入的,但是當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方法。
UserService中的屬性定義如下所示:
參考:
1.http://my.oschina.net/wlb/blog/282958
http://www.cnblogs.com/_popc/p/3967885.html
http://blog.csdn.net/zhiweianran/article/details/8659944
http://www.cnblogs.com/elleniou/archive/2013/07/03/3168836.html
java java.lang.NoClassDefFoundError 的解決辦法(全)
http://mvnrepo.alibaba-inc.com/nexus/