![spring快速入門教程_第1頁(yè)](http://file4.renrendoc.com/view3/M01/15/36/wKhkFmZT2wSAJg1EAADer4DXXhA051.jpg)
![spring快速入門教程_第2頁(yè)](http://file4.renrendoc.com/view3/M01/15/36/wKhkFmZT2wSAJg1EAADer4DXXhA0512.jpg)
![spring快速入門教程_第3頁(yè)](http://file4.renrendoc.com/view3/M01/15/36/wKhkFmZT2wSAJg1EAADer4DXXhA0513.jpg)
![spring快速入門教程_第4頁(yè)](http://file4.renrendoc.com/view3/M01/15/36/wKhkFmZT2wSAJg1EAADer4DXXhA0514.jpg)
![spring快速入門教程_第5頁(yè)](http://file4.renrendoc.com/view3/M01/15/36/wKhkFmZT2wSAJg1EAADer4DXXhA0515.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北京傳智播客教育spring入門
講師:袁杰北京傳智播客教育
第一章開始spring之旅北京傳智播客教育
Spring介紹Spring是一個(gè)非?;顫姷拈_源框架,它是一個(gè)基于IOC和AOP來(lái)構(gòu)架多層JavaEE系統(tǒng)的框架,它的主要目地是簡(jiǎn)化企業(yè)開發(fā)Spring以一種非侵入式的方式來(lái)管理你的代碼,Spring提倡”最少侵入”,這也就意味著你可以適當(dāng)?shù)臅r(shí)候安裝或卸載SpringSpring框架的主頁(yè):Spring框架下載地址:北京傳智播客教育
Spring模塊北京傳智播客教育
為什么要使用Spring在工程中引入spring立即可以帶來(lái)下面的好處降低組件之間的耦合度,實(shí)現(xiàn)軟件各層之間的解耦。
IOC(依賴注入):包含并管理應(yīng)用對(duì)象的配置和生命周期,你可以配置你的每個(gè)bean如何被創(chuàng)立,也可以配置每個(gè)bean是只有一個(gè)實(shí)例,還是每次需要時(shí)都生成一個(gè)新的實(shí)例,以及它們是如何相互關(guān)聯(lián)的AOP(面向切面):采用了面向切面編程來(lái)實(shí)現(xiàn)很多根底但是與業(yè)務(wù)邏輯無(wú)關(guān)的功能的解耦,比方:事務(wù)管理、日志、權(quán)限驗(yàn)證.....DAO:Spring還提供了對(duì)數(shù)據(jù)庫(kù)JDBC的封裝,使用JdbcTemplate來(lái)簡(jiǎn)化數(shù)據(jù)操作ORM:提供了對(duì)主流的對(duì)象關(guān)系映射框架的支持JEE:對(duì)Java企業(yè)級(jí)開發(fā)提供了一些解決方案,例如EJB、JMS等WEB:提供了自己的SpringMVC和對(duì)顯示層框架的集合支持ControllerServiceDAO北京傳智播客教育
為什么要使用Spring當(dāng)使用spring時(shí),我們可以使用容器提供的眾多效勞北京傳智播客教育
控制反轉(zhuǎn)(IOC)IOC就是InversionOfControlpublicclassGirl{privateBoyboy=newBoy();publicvoidkiss(){System.out.println(boy.getName());}}boy是在應(yīng)用內(nèi)部創(chuàng)立及維護(hù)的。所謂控制反轉(zhuǎn)就是應(yīng)用本身不負(fù)責(zé)依賴對(duì)象的創(chuàng)立及維護(hù),依賴對(duì)象的創(chuàng)立及維護(hù)是由外部容器負(fù)責(zé)的。這樣控制權(quán)就由應(yīng)用轉(zhuǎn)移到了外部容器,控制權(quán)的轉(zhuǎn)移就是所謂反轉(zhuǎn),目的是為了獲得更好的擴(kuò)展性和良好的可維護(hù)性。北京傳智播客教育
依賴注入(DI)DI就是DependencyInjection當(dāng)我們把依賴對(duì)象交給外部容器負(fù)責(zé)創(chuàng)立,那么Girl類可以改成如下:publicclassGirl{privateBoyboy;publicvoidkiss(){System.out.println(boy.getName());}}所謂依賴注入就是指:在運(yùn)行期,由外部容器動(dòng)態(tài)地將依賴對(duì)象注入到另一個(gè)對(duì)象中。北京傳智播客教育
IOC和DI在spring中的實(shí)現(xiàn)案例:北京傳智播客教育
使用Spring需要的jar到下載spring,然后進(jìn)行解壓縮,在解壓目錄中找到下面jar文件,拷貝到類路徑下--spring的核心類庫(kù)在spring文檔的dist下dist\spring.jar--引入的第三方類庫(kù)都spring文檔的lib下lib\jakarta-commons\commons-logging.jar北京傳智播客教育
spring的配置文件模版<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns=":///schema/beans"xmlns:xsi=":///2001/XMLSchema-instance":///schema/beans/spring-beans-2.5.xsd"> .....</beans>該配置模版可以從spring的參考手冊(cè)或spring的例子中得到。配置文件的取名可以任意,文件可以存放在任何目錄下,但考慮到通用性,一般放在類路徑下。例如:spring-framework-2.5.6\samples\petclinic\war\WEB-INF\applicationContext-hibernate.xml北京傳智播客教育
實(shí)例化spring容器實(shí)例化Spring容器常用的兩種方式:方法一:在類路徑下尋找配置文件來(lái)實(shí)例化容器ApplicationContextctx=newClassPathXmlApplicationContext(newString[]{"beans.xml"});可以在整個(gè)類路徑中尋找xml文件*通過(guò)這種方式加載。需要將spring的配置文件放到當(dāng)前工程的classpath路徑下*classpath路徑指的是當(dāng)前工程的src目錄,該目錄是java源文件的存放位置。方法二:在文件系統(tǒng)路徑下尋找配置文件來(lái)實(shí)例化容器ApplicationContextctx=newFileSystemXmlApplicationContext(newString[]{“d:\\beans.xml“});Spring的配置文件可以指定多個(gè),可以通過(guò)String數(shù)組傳入。北京傳智播客教育
從spring容器中得到bean當(dāng)spring容器啟動(dòng)后,因?yàn)閟pring容器可以管理bean對(duì)象的創(chuàng)立,銷毀等生命周期,所以我們只需沉著器直接獲取Bean對(duì)象就行,而不用編寫一句代碼來(lái)創(chuàng)立bean對(duì)象。沉著器獲取bean對(duì)象的代碼如下:ApplicationContextctx=newClassPathXmlApplicationContext("beans.xml");
Girlgirl=(Girl)ctx.getBean("girl");北京傳智播客教育
第二章操作Bean北京傳智播客教育
三種實(shí)例化Bean的方式:1.使用類構(gòu)造器實(shí)例化(默認(rèn)無(wú)參數(shù))北京傳智播客教育
三種實(shí)例化Bean的方式2.使用靜態(tài)工廠方法實(shí)例化北京傳智播客教育
三種實(shí)例化Bean的方式3.使用實(shí)例工廠方法實(shí)例化:北京傳智播客教育
指定Bean的初始化方法和銷毀方法Spring初始化bean或銷毀bean時(shí),有時(shí)需要作一些處理工作,因此spring可以在創(chuàng)立和銷毀bean的時(shí)候調(diào)用bean的兩個(gè)生命周期方法。<beanid=“foo”class=“...Foo”init-method=“setup”destory-method=“teardown”/>當(dāng)bean被載入到容器的時(shí)候調(diào)用setup當(dāng)bean沉著器中刪除的時(shí)候調(diào)用teardown(scope=singleton有效)北京傳智播客教育
Bean的作用域.singleton(默認(rèn)值)在每個(gè)SpringIoC容器中一個(gè)bean定義只有一個(gè)對(duì)象實(shí)例(共享)。默認(rèn)情況下會(huì)在容器啟動(dòng)時(shí)初始化bean,但我們可以指定Bean節(jié)點(diǎn)的lazy-init=“true”來(lái)延遲初始化bean,這時(shí)候,只有第一次獲取bean會(huì)才初始化bean。如:<beanid="xxx"class="cn.itcast.OrderServiceBean"lazy-init="true"/>.prototype允許bean可以被屢次實(shí)例化(使用一次就創(chuàng)立一個(gè)實(shí)例)北京傳智播客教育
Bean間的繼承關(guān)系如果多個(gè)Bean存在相同的配置信息,Spring允許定義一個(gè)父Bean,然后為其定義子Bean將自動(dòng)繼續(xù)父Bean中的配置信息,子Bean也可覆蓋父Bean中的配置信息。北京傳智播客教育依賴注入使用屬性setter方法注入使用構(gòu)造器注入注入依賴對(duì)象可以采用手工裝配或自動(dòng)裝配,在實(shí)際應(yīng)用中建議使用手工裝配,因?yàn)樽詣?dòng)裝配會(huì)產(chǎn)生未知情況,開發(fā)人員無(wú)法預(yù)見最終的裝配結(jié)果。1.手工裝配依賴對(duì)象2.自動(dòng)裝配依賴對(duì)象北京傳智播客教育依賴注入--手工裝配手工裝配依賴對(duì)象,在這種方式中又有兩種編程方式*在xml配置文件中,通過(guò)在bean節(jié)點(diǎn)下配置北京傳智播客教育依賴注入--手工裝配--XML方式通過(guò)setter方法注入依賴<bean>元素的<property>子元素指明了使用它們的set方法來(lái)注入。可以注入任何東西,從根本類型到集合類,甚至是應(yīng)用系統(tǒng)的bean。北京傳智播客教育依賴注入--手工裝配--XML方式通過(guò)setter方法注入依賴*簡(jiǎn)單bean配置配置bean的簡(jiǎn)單屬性,根本數(shù)據(jù)類型和String。北京傳智播客教育依賴注入--手工裝配--XML方式通過(guò)setter方法注入依賴*引用其它bean
北京傳智播客教育依賴注入--手工裝配--XML方式通過(guò)setter方法注入依賴*裝配集合A、裝配List和數(shù)組:
北京傳智播客教育依賴注入--手工裝配--XML方式通過(guò)setter方法注入依賴
*裝配集合
B、裝配set:
北京傳智播客教育依賴注入--手工裝配--XML方式通過(guò)setter方法注入依賴*裝配集合
C、裝配map:map中的<entry>的數(shù)值和<list>以及<set>的一樣,可以使任何有效的屬性元素,需要注意的是key值必須是String的。北京傳智播客教育依賴注入--手工裝配--XML方式通過(guò)setter方法注入依賴*裝配集合D、裝配Properties:
<!--裝配Properties--><propertyname="props"><props><propkey=“01”>prop1-字符串類型</prop>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鶴崗貨運(yùn)考試題目
- 2025年萊蕪貨運(yùn)資格證安檢考試題
- 小學(xué)二年級(jí)數(shù)學(xué)上口算紙
- 2025年濟(jì)寧道路客貨運(yùn)輸從業(yè)資格證b2考試題庫(kù)
- 2025年焦作道路運(yùn)輸從業(yè)人員從業(yè)資格考試
- 電焊工入職合同(2篇)
- 《北魏政治和北方民族大交融》聽課評(píng)課記錄2(新部編人教版七年級(jí)上冊(cè)歷史)
- 2024-2025學(xué)年高中英語(yǔ)Module6TheInternetandTelecommunicationsSectionⅤWriting-正反觀點(diǎn)對(duì)比類議論文教案含解析外研版必修1
- 企業(yè)年終工作總結(jié)報(bào)告
- 公司人事部門年終工作總結(jié)
- 班級(jí)建設(shè)方案中等職業(yè)學(xué)校班主任能力大賽
- T-TJSG 001-2024 天津市社會(huì)組織社會(huì)工作專業(yè)人員薪酬指導(dǎo)方案
- 芯片設(shè)計(jì)基礎(chǔ)知識(shí)題庫(kù)100道及答案(完整版)
- 00015-英語(yǔ)二自學(xué)教程-unit2
- 2024變電站無(wú)人機(jī)巡檢系統(tǒng)規(guī)范第2部分:檢測(cè)規(guī)范
- 人教版九上化學(xué)第二單元課題2氧氣課件
- 三年級(jí)上冊(cè)乘法豎式計(jì)算200道及答案
- 區(qū)塊鏈技術(shù)指南
- 湘教版初二英語(yǔ)(八年級(jí))上冊(cè)期末知識(shí)點(diǎn)歸納
- 1.中小學(xué)推行全員育人導(dǎo)師制的實(shí)施方案
- 中頻治療儀的使用流程
評(píng)論
0/150
提交評(píng)論