使用ssm框架開發(fā)企業(yè)級應(yīng)用_第1頁
使用ssm框架開發(fā)企業(yè)級應(yīng)用_第2頁
使用ssm框架開發(fā)企業(yè)級應(yīng)用_第3頁
使用ssm框架開發(fā)企業(yè)級應(yīng)用_第4頁
使用ssm框架開發(fā)企業(yè)級應(yīng)用_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

預(yù)習檢查集中測試控制反轉(zhuǎn)為程序開發(fā)帶來的好處是什么?面向切面編程的

思想是什么?Spring

AOP的增強處理類型有哪些?2/32回顧與作業(yè)點評回顧簡述數(shù)據(jù)持久化的概念列舉下MyBatis中實現(xiàn)動態(tài)SQL的主要元素有哪些,以及它們的應(yīng)用場景作業(yè)點評點評作業(yè)的提交情況和共性問題3/32本章任務(wù)實現(xiàn)“動態(tài)組裝”的實現(xiàn)“自動的”系統(tǒng)日志功能4/32本章目標理解Spring

IoC的原理掌握Spring

IoC的配置理解Spring

AOP的原理掌握Spring

AOP的配置5/32Java企業(yè)級框架企業(yè)級系統(tǒng)大規(guī)模:用戶數(shù)量多、數(shù)據(jù)規(guī)模大、功能眾多性能和安全要求高業(yè)務(wù)復(fù)雜靈活應(yīng)變Java技術(shù)如何應(yīng)對EJB…Spring6/32Spring的綠草叢4-1Spring輕量級框架,Java

EE的春天,當前主流框架目標使現(xiàn)有技術(shù)更加易用,推進編碼最佳實踐內(nèi)容IoC容器AOP實現(xiàn)數(shù)據(jù) 支持簡化JDBC/ORM

框架式事務(wù)Web集成7/32Spring的綠草叢4-2Spring體系結(jié)構(gòu)8/32Spring的綠草叢4-3Spring設(shè)計理念Spring是面向Bean的編程Spring

兩大 技術(shù)控制反轉(zhuǎn)(IoC:Inversion

of

Control)/依賴注入

(DI:Dependency

Injection)面向切面編程(AOP:Aspect

OrientedProgramming)9/32Spring的綠草叢4-4Spring的優(yōu)點低侵入式設(shè)計獨立于各種應(yīng)用服務(wù)器依賴注入特性將組件關(guān)系透明化,降低了耦合度面向切面編程特性允許將通用任務(wù)進行集中式處理與第 框架的良好整合10/32要點:明確定義組件間將組件對象的控制權(quán)從代碼本身轉(zhuǎn)移到外部容器組件化的思想:分離關(guān)注點,使用接口,不再關(guān)注實現(xiàn)目的依:解賴耦的合注。入實現(xiàn):每將個組組件件時的構(gòu)建和使用分開只關(guān)

的事情控制反轉(zhuǎn)/依賴注入組件的使用組件的生產(chǎn)接口的定義運行時注入演示:使用簡單工廠

11/32o,Spring!問題如何使用Spring實現(xiàn)“控制反轉(zhuǎn)”?編寫

oSpring類,輸出“

o,

Spring!”字符串“Spring”通過Spring注入到

oSpring類中分析步驟添加Spring到項目中編寫配置文件編寫代碼獲取

oSpring實例演示示例1:o

,

S

p

r

i

n

g

!12/32學員操作—Spring依賴注入n)r序

aa練習需求說明控制臺輸出說:“三天不打小鬼子,手都癢癢!”Rod說:“世界上有10種人,認識二進制的和不認識二進制的。要求:說話人和說話內(nèi)容都通過Spring實現(xiàn)依賴注入提示添加Sp編寫程獲取Be完成時間:15分鐘

13/32共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解14/32小結(jié)提問根據(jù)你的理解,

控制反轉(zhuǎn)/依賴注入?使用Spring

IoC的步驟是什么?經(jīng)驗設(shè)值注入使用<bean>元素定義一個組件id屬性:指定一個用來 的唯一名稱name屬性:指定多個別名,名字之間使用逗號、分號或空格進行分隔15/32依賴注入綜合示例定義墨盒和紙張的接口標準使用接口標準開發(fā)組裝運行A4B516/32彩色墨盒灰色墨盒問題如何開發(fā)一個

?可靈活配置使用彩色墨盒或灰色墨盒可靈活配置打印頁面的大小分析功能的實現(xiàn)依賴于墨盒和紙張步驟演示示例2:組裝

學員操作—實現(xiàn)功能功能使用SpringIoC實現(xiàn)墨盒和紙張的靈活替換練習需求說明自己動手實現(xiàn)完成時間:20分鐘

17/32共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解18/32小結(jié)提問使用控制反轉(zhuǎn)/依賴注入有哪些好處?“簡單工廠模式”?有什么優(yōu)點?使用Spring

IoC的步驟是什么?19/32面向切面編程(AOP)3-1public

class

UserServiceImpl

implements

UserService

{private

static

final

Logger

log

=

Logger.getLogger(UserServiceImpl.class);public

boolean

addNewUser(User

user)

{(“添加用戶”+user.getUsername());//記錄日志SqlSession

sqlSession=null;boolean

flag

=

false;//異常處理try{sqlSession

=

MyBatisUtil.createSqlSession();if

(sqlSession.getMapper(UserMapper.class).add(user)

>

0)flag

=

true;mit();//事務(wù)控制}

catch

(Exception

e)

{log.error("添加用戶"+user.getUsername()+"失敗",e);//記錄日志sqlSession.rollback();//事務(wù)控制flag

=

false;}

finally

{MyBatisUtil.closeSqlSession(sqlSession);}return

flag;}}業(yè)務(wù)代碼20/32構(gòu)建系統(tǒng)的目的是解決業(yè)務(wù)問題現(xiàn)在卻要 多個方面的事情怎樣才能“專心”做事?面向切面編程(AOP)3-2AOP的目標:讓

可以“專心做事”AOP原理將復(fù)雜的需求分解出不同方面,將散布在系統(tǒng)中的公共功能集中解決采用

機制組裝起來運行,在不改變原程序的基礎(chǔ)上對代碼段進行增強處理,增加新的功能通過對象來調(diào)用原對象的方法對象方法前后都可代碼,這些代碼就是增強處理所謂面向切面編程,是一種通過預(yù)編譯和運行期動態(tài) 的方式實現(xiàn)在不修改源代碼的情況下給程序動態(tài)添加功能的技術(shù)!21/32面向切面編程(AOP)3-3AOP相關(guān)術(shù)語增強處理(Advice)前置增強后置增強環(huán)繞增強、異常拋出增強、最終增強等類型切入點(Pointcut)連接點(Join

Point)切面(Aspect)目標對象(

object)AOP (AOP

proxy)織入(Weaving)增強處理增強處理22/32怎樣使用AOP

4-1示例使用Spring

AOP實現(xiàn)日志輸出實現(xiàn)步驟1.

在項目中添加Spring

AOP的jar文件在業(yè)務(wù)方法執(zhí)行前后成功添加了日志功能編寫前置增強和后置增強實現(xiàn)日志功能編寫Spring配置文件,對業(yè)務(wù)方法進行增強處理編寫代碼獲取帶有增強處理的業(yè)務(wù)對象演示示例3:使用S

p

r

i

n

g

A

O

P實現(xiàn)日志功能23/32怎樣使用AOP

4-2目標方法增強處理public

class

UserServiceImpl

implements

UserService

{//…省略代碼public

void

addNewUser(User

user)

{dao.save(user);}}前置增強public

class

UserServiceLogger

{private

static

Logger

log=Logger.getLogger(UserServiceLogger.class);public

void

before(JoinPoint

jp){("調(diào)用

"

+

jp.get ()

+"

"

+

jp.getSignature().getName()

+

"

方法。方法入?yún)ⅲ?

+

Arrays.toString(jp.getArgs()));}public

void

afterReturning(JoinPoint

jp,

Object

result){("調(diào)用

"

+

jp.get ()

+"

"

+

jp.getSignature().getName()+"方法。方法返回值:"+result);}}后置增強連接點方法所在的目標類連接點方法信息連接點方法參數(shù)數(shù)組連接點對象24/32怎樣使用AOP

4-3定義切入點切入點:簡單的說,就是連接點的查詢條件表達式匹配規(guī)則舉例<aop:config><aop:pointcut

id="pointcut"expression="execution(public

void

addNewUser(entity.User))"/></aop:config>切入點表達式,符合該表達式的方法可以被織入增強處理public

*

addNewUser(entity.User):“*”表示匹配所有類型的返回值。public

void

*(entity.User):“*”表示匹配所有方法名。public

void

addNewUser(..):“..”表示匹配所有參數(shù)個數(shù)和類型。com.service.*.*(..):匹配com.service包下所有類的所有方法。com.service..*.*(..):匹配com.service包及其子包下所有類的所有方法25/32怎樣使用AOP

4-4織入增強處理織入:在切入點增強處理<aop:config><aop:pointcut

id="pointcut"expression="execution(public

void

addNewUser(entity.User))"

/><aop:aspect

ref="userServiceLogger"><aop:beforemethod="before"pointcut-ref="pointcut"></aop:before><aop:after-returningmethod="afterReturning"pointcut-ref="pointcut"

returning="result"/></aop:aspect></aop:config>切入點被織入的方法增強處理對象前置增強處理后置增強處理指定需要注入返回值的屬性名為result26/32學員操作—使用SpringAOP記錄日志練習需求說明使用前置增強和后置增強對業(yè)務(wù)方法的執(zhí)行過程進行日志記錄完成時間:25分鐘

27/32共性問題集中講解常見問題及解決辦法代碼規(guī)范問題調(diào)試技巧共性問題集中講解28/32總結(jié)輕量級的企業(yè)級框架搭建Spring開發(fā)環(huán)境IoCAOP控制反轉(zhuǎn)\依賴注入組件之間以配置文件的形式組織在一起,而不是以硬編碼的方式耦合在一起<bean>創(chuàng)建Spring的配置文件<property>Spring概念獲取并添加Spring的jar文件面向切面編程:從系統(tǒng)中分離出切面,獨立于業(yè)務(wù)邏輯實現(xiàn),在程序執(zhí)行時織入程序中運行(在什么位置,執(zhí)行什么功能)配置AOP主要使用a

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論