




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
預習檢查集中測試控制反轉(zhuǎn)為程序開發(fā)帶來的好處是什么?面向切面編程的
思想是什么?Spring
AOP的增強處理類型有哪些?2/32回顧與作業(yè)點評回顧簡述數(shù)據(jù)持久化的概念列舉下MyBatis中實現(xiàn)動態(tài)SQL的主要元素有哪些,以及它們的應用場景作業(yè)點評點評作業(yè)的提交情況和共性問題3/32本章任務實現(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è)務復雜靈活應變Java技術(shù)如何應對EJB…Spring6/32Spring的綠草叢4-1Spring輕量級框架,Java
EE的春天,當前主流框架目標使現(xiàn)有技術(shù)更加易用,推進編碼最佳實踐內(nèi)容IoC容器AOP實現(xiàn)數(shù)據(jù) 支持簡化JDBC/ORM
框架式事務Web集成7/32Spring的綠草叢4-2Spring體系結(jié)構(gòu)8/32Spring的綠草叢4-3Spring設計理念Spring是面向Bean的編程Spring
兩大 技術(shù)控制反轉(zhuǎn)(IoC:Inversion
of
Control)/依賴注入
(DI:Dependency
Injection)面向切面編程(AOP:Aspect
OrientedProgramming)9/32Spring的綠草叢4-4Spring的優(yōu)點低侵入式設計獨立于各種應用服務器依賴注入特性將組件關(guān)系透明化,降低了耦合度面向切面編程特性允許將通用任務進行集中式處理與第 框架的良好整合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)驗設值注入使用<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();//事務控制}
catch
(Exception
e)
{log.error("添加用戶"+user.getUsername()+"失敗",e);//記錄日志sqlSession.rollback();//事務控制flag
=
false;}
finally
{MyBatisUtil.closeSqlSession(sqlSession);}return
flag;}}業(yè)務代碼20/32構(gòu)建系統(tǒng)的目的是解決業(yè)務問題現(xiàn)在卻要 多個方面的事情怎樣才能“專心”做事?面向切面編程(AOP)3-2AOP的目標:讓
可以“專心做事”AOP原理將復雜的需求分解出不同方面,將散布在系統(tǒng)中的公共功能集中解決采用
機制組裝起來運行,在不改變原程序的基礎上對代碼段進行增強處理,增加新的功能通過對象來調(diào)用原對象的方法對象方法前后都可代碼,這些代碼就是增強處理所謂面向切面編程,是一種通過預編譯和運行期動態(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è)務方法執(zhí)行前后成功添加了日志功能編寫前置增強和后置增強實現(xiàn)日志功能編寫Spring配置文件,對業(yè)務方法進行增強處理編寫代碼獲取帶有增強處理的業(yè)務對象演示示例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è)務方法的執(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è)務邏輯實現(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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年安慶師范大學招聘考試真題
- 2025年二級注冊建筑師之建筑結(jié)構(gòu)與設備題庫附答案(典型題)
- 物流行業(yè)調(diào)度員崗位職責
- 文物保護單位消防設備維護計劃
- 小學教師實習教學反思范文
- 2024-2025學年人教版七年級數(shù)學在線學習計劃
- 小學二年級暑假閱讀活動計劃
- 2025年初中校內(nèi)體育設施使用計劃
- 人壽保險產(chǎn)品定價策略計劃
- 2025年語文閱讀教學多元化方案
- 計量器具校準記錄
- DB36-T 1694-2022 餐廚垃圾集約化養(yǎng)殖黑水虻技術(shù)規(guī)程
- 三字經(jīng)全文(帶拼音及誦讀指導)精編版課件
- 井控培訓知識課件
- 技術(shù)合同認定登記培訓課件
- 雙減背景下小學語文作業(yè)的有效設計課件
- 十二講船舶制冷裝置課件
- 第12課送你一個書簽
- 耳內(nèi)鏡微創(chuàng)外科技術(shù)PPT通用課件[通用]
- 寧夏華夏特鋼有限公司年產(chǎn)40萬噸石膏制酸項目環(huán)境影響評價報告書
- 第5章有色金屬的焊接
評論
0/150
提交評論