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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論