Spring自動(dòng)裝配與掃描注解代碼詳解
1 javabean的自動(dòng)裝配
自動(dòng)注入,減少xml文件的配置信息。
<?xml version="1.0" encoding="UTF-8"?> <!-- 到入xml文件的約束 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd"> <!-- 1 實(shí)例化Dao對(duì)象 id:完成對(duì)象的引用 class:指定需要?jiǎng)?chuàng)建的對(duì)象對(duì)應(yīng)的類的完全限定名 --> <bean id="usersDao" class="org.guangsoft.dao.impl.UsersDaoImpl"> </bean> <!-- 2實(shí)例化service autowire:屬性的作用,完成對(duì)象依賴之間的自動(dòng)裝配 no(默認(rèn)執(zhí)行) byName:使用需要注入的屬性對(duì)應(yīng)的set的方法名字和spring容器中的對(duì)象的id進(jìn)行匹配,如果能匹配上,進(jìn)行自動(dòng)注入 byType:使用需要注入的屬性對(duì)應(yīng)的set的方法參數(shù)類型和spring容器中的對(duì)象的類型進(jìn)行匹配,如果能匹配上,進(jìn)行自動(dòng)注入 constructor:在byName和byType之間進(jìn)行選擇(首先byName,如果byName不匹配再byType) 實(shí)際使用:byName --> <bean id="usersService" class="org.guangsoft.service.impl.UsersServiceImpl" autowire="byType"> </bean> <!-- 3實(shí)例化Action對(duì)象 --> <bean id="usersAction" class="org.guangsoft.action.UsersAction" autowire="byType"> </bean> </beans>
2 spring的掃描注解
使用spring的掃描注解,重構(gòu)三層結(jié)構(gòu)。配置更少的內(nèi)容
在applicationContext.xml文件中,導(dǎo)入掃描的xsd
l 開啟注解掃描
<?xml version="1.0" encoding="UTF-8"?> <!-- 到入xml文件的約束 --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" [ A1 ] xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd "> <!-- 開啟注解掃描 base-package屬性:指定需要掃描的包,多個(gè)包之間使用,號(hào)隔開 a.b.c a.b.d a.b.e --> <context:component-scan base-package="org.guangsoft.dao.impl, org.guangsoft.service.impl,org.guangsoft.action"></context:component-scan> </beans>
注解進(jìn)行總結(jié)
類注解:
@controller(給web層的注解)
@service(給serivce層加的注解)
@repository(給dao層加的注解)
@component(給java類加注解,老版本spring只有這一個(gè)注解)
以上三個(gè)注解:將對(duì)應(yīng)的類納入spring容器中對(duì)應(yīng)的
Id:類名第一個(gè)字母小寫(默認(rèn))
如果需要自己指定id需要給三個(gè)注解加入String類的參數(shù)
@controller(“uAction”)id=uAction
@resouce(給需要依賴的對(duì)象屬性加的注解)
通過(guò)自動(dòng)裝配完成需要依賴屬性的注入。
參數(shù):name:按照byName進(jìn)行自動(dòng)裝配
參數(shù):type:按照byType進(jìn)行自動(dòng)裝配
注解執(zhí)行過(guò)程
1,加載spring的容器
2,掃描spring容器中指定包
3,掃描指定的包中,加了三個(gè)類注解的類,然后將該類納入spring容器
4,<beanid=””class=””>
5,掃描類中被加入@resource注解的屬性,然后按照自動(dòng)裝配的方式進(jìn)行關(guān)系建立
6,Autowrie
總結(jié)
以上就是本文關(guān)于Spring自動(dòng)裝配與掃描注解代碼詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
Spring將MultipartFile轉(zhuǎn)存到本地磁盤的三種方式
在Java中處理文件向來(lái)是一種不是很方便的操作,然后隨著Spring框架的崛起,使用Spring框架中的MultipartFile來(lái)處理文件也是件很方便的事了,今天就給大家介紹Spring將MultipartFile轉(zhuǎn)存到本地磁盤的方式,需要的朋友可以參考下2024-10-10Java實(shí)現(xiàn)多個(gè)數(shù)組間的排列組合
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多個(gè)數(shù)組間的排列組合,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02java實(shí)現(xiàn)簡(jiǎn)單的英文文本單詞翻譯器功能示例
這篇文章主要介紹了java實(shí)現(xiàn)簡(jiǎn)單的英文文本單詞翻譯器功能,涉及java文件讀取、字符串分割、遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10Java對(duì)象數(shù)組的添加、刪除和遍歷代碼示例
在Java編程中,我們經(jīng)常需要對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行遍歷操作,并根據(jù)業(yè)務(wù)需求刪除部分元素,這篇文章主要給大家介紹了關(guān)于Java對(duì)象數(shù)組的添加、刪除和遍歷的相關(guān)資料,需要的朋友可以參考下2024-04-04JAVA利用HttpClient進(jìn)行POST請(qǐng)求(HTTPS)實(shí)例
下面小編就為大家?guī)?lái)一篇JAVA利用HttpClient進(jìn)行POST請(qǐng)求(HTTPS)實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起 小編過(guò)來(lái)看看吧2016-11-11Mybatis調(diào)用存儲(chǔ)過(guò)程的案例
這篇文章主要介紹了Mybatis如何調(diào)用存儲(chǔ)過(guò)程,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07