Spring注入中byType和byName的總結


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/ 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM