spring4_day01講義.doc_第1頁(yè)
spring4_day01講義.doc_第2頁(yè)
spring4_day01講義.doc_第3頁(yè)
spring4_day01講義.doc_第4頁(yè)
spring4_day01講義.doc_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Spring_day01 總結(jié)今日任務(wù) 使用 Spring 完成對(duì)客戶的保存操作教學(xué)導(dǎo)航教學(xué)目標(biāo)教學(xué)方法案例驅(qū)動(dòng)法案例一使用Spring的IOC完成保存客戶的操作:1.1 案例需求1.1.1 需求概述CRM 系統(tǒng)中客戶信息管理模塊功能包括:新增客戶信息客戶信息查詢修改客戶信息刪除客戶信息本功能要實(shí)現(xiàn)新增客戶,頁(yè)面如下:1.2 相關(guān)知識(shí)點(diǎn)1.1.1 Spring 的概述: 什么是 Spring :Spring 是一個(gè)開源框架,Spring 是于 2003 年興起的一個(gè)輕量級(jí)的 Java 開發(fā)框架,由 Rod Johnson在其著作 Expert One-On-One J2EE Development and Design 中闡述的部分理念和原型衍生而來(lái)。它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的??蚣艿闹饕獌?yōu)勢(shì)之一就是其分層架構(gòu),分層架構(gòu)允許使用者選擇使用哪一個(gè)組件,同時(shí)為 J2EE 應(yīng)用程序開發(fā)提供集成的框架。Spring 使用基本的 JavaBean 來(lái)完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何 Java 應(yīng)用都可以從 Spring 中受益。Spring 的核心是控制反轉(zhuǎn)(IoC)和面向切面(AOP)。簡(jiǎn)單來(lái)說,Spring 是一個(gè)分層的 JavaSE/EEfull-stack(一站式) 輕量級(jí)開源框架。EE 開發(fā)分成三層結(jié)構(gòu): * WEB 層:Spring MVC.* 業(yè)務(wù)層:Bean 管理:(IOC)* 持久層:Spring 的 JDBC 模板.ORM 模板用于整合其他的持久層框架.Expert One-to-One J2EE Design and Development:J2EE 的設(shè)計(jì)和開發(fā):(2002.EJB)Expert One-to-One J2EE Development without EJB:J2EE 不使用 EJB 的開發(fā). 為什么學(xué)習(xí) Spring:方便解耦,簡(jiǎn)化開發(fā)Spring 就是一個(gè)大工廠,可以將所有對(duì)象創(chuàng)建和依賴關(guān)系維護(hù),交給 Spring 管理 AOP 編程的支持Spring 提供面向切面編程,可以方便的實(shí)現(xiàn)對(duì)程序進(jìn)行權(quán)限攔截、運(yùn)行監(jiān)控等功能聲明式事務(wù)的支持只需要通過配置就可以完成對(duì)事務(wù)的管理,而無(wú)需手動(dòng)編程方便程序的測(cè)試Spring 對(duì) Junit4 支持,可以通過注解方便的測(cè)試 Spring 程序方便集成各種優(yōu)秀框架Spring 不排斥各種優(yōu)秀的開源框架,其內(nèi)部提供了對(duì)各種優(yōu)秀框架(如:Struts、Hibernate、MyBatis、Quartz 等)的直接支持降低 JavaEE API 的使用難度Spring 對(duì) JavaEE 開發(fā)中非常難用的一些 API(JDBC、JavaMail、遠(yuǎn)程調(diào)用等),都提供了封裝,使這些 API 應(yīng)用難度大大降低 Spring 的版本:Spring 3.X 和 Spring4.X1.2.2 Spring 的入門案例:(IOC) IOC 的底層實(shí)現(xiàn)原理IOC:Inversion of Control 控制反轉(zhuǎn). 指的是 對(duì)象的創(chuàng)建權(quán)反轉(zhuǎn)(交給)給 Spring.作用是實(shí)現(xiàn)了程序的解耦合. 步驟一:下載 Spring 的開發(fā)包:官網(wǎng):http:/spring.io/下載地址:/libs-release-local/org/springframework/spring解壓:(Spring 目錄結(jié)構(gòu):)* docs:API 和開發(fā)規(guī)范.* libs:jar 包和源碼.* schema:約束. 步驟二:創(chuàng)建 web 項(xiàng)目,引入 Spring 的開發(fā)包: 步驟三:引入相關(guān)配置文件:pertiesapplicationContext.xml引入約束:spring-framework-4.2.4.RELEASEdocsspring-framework-referencehtmlxsd-configur ation.html 步驟四:編寫相關(guān)的類:public interface UserDao public void sayHello();public class UserDaoImpl implements UserDao Overridepublic void sayHello() System.out.println(Hello Spring.); 步驟五:完成配置: 步驟六:編寫測(cè)試程序:Test/ Spring 的方式: public void demo2()/ 創(chuàng)建 Spring 的工廠類:ApplicationContextapplicationContext=newClassPathXmlApplicationContext(applicationContext.xml);/ 通過工廠解析 XML 獲取 Bean 的實(shí)例.UserDao userDao = (UserDao) applicationContext.getBean(userDao);userDao.sayHello(); IOC 和 DI:IOC :Inverse Of Control控制反轉(zhuǎn),將對(duì)象的創(chuàng)建權(quán)交給了 Spring.DI:Dependency Injection 依賴注入.需要有 IOC 的環(huán)境,Spring 創(chuàng)建這個(gè)類的過程中,Spring 將類的依賴的屬性設(shè)置進(jìn)去.1.2.3 Spring 中的工廠(容器): ApplicationContext:ApplicatioContext 接口有兩個(gè)實(shí)現(xiàn)類:ClassPathXmlApplicationContext:加載類路徑下 Spring 的配置文件.FileSystemXmlApplicationContext:加載本地磁盤下 Spring 的配置文件. BeanFactory(過時(shí)): BeanFactory 和 ApplicationContext 的區(qū)別:BeanFactory:是在 getBean 的時(shí)候才會(huì)生成類的實(shí)例.ApplicationContext:在加載 applicationContext.xml(容器啟動(dòng))時(shí)候就會(huì)創(chuàng)建.1.2.4 配置 STS 的 XML 的提示: Spring 配置文件中提示的配置復(fù)制路徑:* /schema/beans/spring-beans.xsd查找 XML Catalog:點(diǎn)擊 Add.1.2.5 Spring 的相關(guān)配置: id 屬性和 name 屬性標(biāo)簽的配置id:Bean 起個(gè)名字.在約束中采用 ID 的約束:唯一. 必須以字母開始,可以使用字母、數(shù)字、連字符、下劃線、句話、冒號(hào) id:不能出現(xiàn)特殊字符.name:Bean 起個(gè)名字.沒有采用 ID 的約束. name:出現(xiàn)特殊字符.如果沒有 id 的話 , name 可以當(dāng)做 id 使用.* 整合 struts1 的時(shí)候: scope 屬性:Bean 的作用范圍.* singleton:默認(rèn)值,單例的.* prototype:多例的.* request:WEB 項(xiàng)目中,Spring 創(chuàng)建一個(gè) Bean 的對(duì)象,將對(duì)象存入到 request 域中.* session:WEB 項(xiàng)目中,Spring 創(chuàng)建一個(gè) Bean 的對(duì)象,將對(duì)象存入到 session 域中.* globalSession :WEB 項(xiàng)目中,應(yīng)用在 Porlet 環(huán)境.如果沒有 Porlet 環(huán)境那么 globalSession 相當(dāng)于 session. Bean 的生命周期的配置:通過配置標(biāo)簽上的 init-method 作為 Bean 的初始化的時(shí)候執(zhí)行的方法,配置 destroy-method作為 Bean 的銷毀的時(shí)候執(zhí)行的方法。銷毀方法想要執(zhí)行,需要是單例創(chuàng)建的 Bean 而且在工廠關(guān)閉的時(shí)候,Bean 才會(huì)被銷毀.1.2.6 Spring 的 Bean 的管理 XML 的方式: Spring 生成 Bean 的時(shí)候三種方式(了解)【無(wú)參數(shù)的構(gòu)造方法的方式:】【靜態(tài)工廠實(shí)例化的方式】提供一個(gè)工廠類:public class Bean2Factory public static Bean2 getBean2()return new Bean2();【實(shí)例工廠實(shí)例化的方式】提供 Bean3 的實(shí)例工廠:public class Bean3Factory public Bean3 getBean3()return new Bean3(); Spring 的 Bean 的屬性注入:【構(gòu)造方法的方式注入屬性】【set 方法的方式注入屬性】 Spring 的屬性注入:對(duì)象類型的注入: 名稱空間 p 的屬性注入的方式:Spring2.x 版本后提供的方式.第一步:引入 p 名稱空間第二步:使用 p 名稱空間.* 普通屬性:p:屬性名稱=”* 對(duì)象類型屬性:p:屬性名稱-ref=” SpEL 的方式的屬性注入:Spring3.x 版本后提供的方式.SpEL:Spring Expression Language.語(yǔ)法:# SpEL 引用了另一個(gè)類的屬性!- - 注入復(fù)雜類型: 會(huì)希冠希天一芙蓉如花鳳姐root1 Spring 的分配置文件的開發(fā)一種:創(chuàng)建工廠的時(shí)候加載多個(gè)配置文件:ApplicationContext applicationContext = new ClassPathXmlApplicationContext(applicationContext.xml,applicationContext2.xml);二種:在一個(gè)配置文件中包含另一個(gè)配置文件:1.3 案例代碼1.3.1 搭建環(huán)境: 創(chuàng)建 web 項(xiàng)目,引入 jar 包.WEB 層使用 Struts2:* Struts2 開發(fā)的基本的包Spring 進(jìn)行 Bean 管理:* Spring 開發(fā)的基本的包 引入配置文件:Struts2:* web.xml struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFil terstruts2/* struts.xmlSpring:* applicationContext.xml* perties 引入頁(yè)面: 創(chuàng)建包結(jié)構(gòu)和類: 在添加頁(yè)面提交內(nèi)容到 Action: 改寫 Action 類并配置 Action: 在 Action 調(diào)用業(yè)務(wù)層:將業(yè)務(wù)層類配置到 Spring 中:在 Action 中獲取業(yè)務(wù)層類: public String save()System.out.println(Action 中的 save 方法執(zhí)行了.); System.out.println(customer);/ 傳統(tǒng)方式:/*CustomerService customerService = new CustomerServiceImpl(); customerService.save(customer);*/ Spring 的方式進(jìn)行操作:ApplicationContext applicationContext = new ClassPathXmlApplicationContext(applicationContext.xml);CustomerService customerService = (CustomerService) applicationContext.getBean(customerService);customerService.save(customer);return NONE;* 每次請(qǐng)求都會(huì)創(chuàng)建一個(gè)工廠類,服務(wù)器端的資源就浪費(fèi)了,一般情況下一個(gè)工程只有一個(gè) Spring 的工廠類就 OK 了.* 將工廠在服務(wù)器啟動(dòng)的時(shí)候創(chuàng)建好,將這個(gè)工廠放入到 ServletContext 域中.每次獲取工廠從ServletContext 域中進(jìn)行獲取.* ServletContextLinstener:監(jiān)聽 ServletContext 對(duì)象的創(chuàng)建和銷毀.1.3.2 Spring 整合 WEB 項(xiàng)目 引入 spring-web.jar 包:配置監(jiān)聽器:org.springframework.web.context.ContextLoaderListenercontextConfigLocationclasspath:applicationContext.xml 改寫 Action:/* 保存客戶的執(zhí)行的方法:save */public String save()/ 傳統(tǒng)方式:/*CustomerService customerService = new CustomerServiceImpl(); customerService.save(customer);*/ Spring 的方式進(jìn)行操作:/*ApplicationContext applicationContext = new ClassPathXmlApplicationContext(applicationContext.xml);CustomerService cus

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論