1.介紹Aop:
- AOP(Aspect Oriented Programming琼牧,面向切面編程)雨让,通過提供另一種思考程序的方式來補充OOP(Object Oriented Programming攀痊,面向對象編程)岸霹。AOP是橫向抽取躁锁,OOP是縱向抽象纷铣。切面可以用于事務管理、日志等方面的模塊化
2.定義AOP術語
- Aspect(切面)
- Join Point(連接點)
- Advice(通知/增強)
- Pointcut(切點)
- In- troduction(引入)
- Target Object(目標對象)
- AOP Proxy(AOP代理)
- Weaving(織入)
Spring切面可以應用5中通知: - 前置通知(Before):在目標方法或者說連接點被調(diào)用前執(zhí)行的通知战转;
- 后置通知(After):指在某個連接點完成后執(zhí)行的通知搜立;
- 返回通知(After-returning):指在某個連接點成功執(zhí)行之后執(zhí)行的通知;
- 異常通知(After-throwing):指在方法拋出異常后執(zhí)行的通知槐秧;
- 環(huán)繞通知(Around):指包圍一個連接點通知啄踊,在被通知的方法調(diào)用之前和之后執(zhí)行自定義的方法。
切入點和連接點的匹配刁标,是AOP的關鍵
3.Spring AOP
- Spring AOP用純Java實現(xiàn)颠通,目前僅支持方法調(diào)用作為連接點。
- Spring AOP通常和Spring IoC容器一起使用
4.Hello的前置增強練習
-
pom.xml中添加AOP相關依賴
imageimageimage -
Hello接口和實現(xiàn)類
imageimage -
MyBeforeAdvice類
image -
配置文件
image -
應用主類
image -
運行結果
image
5.實戰(zhàn):模仿連接數(shù)據(jù)庫的操作
-
UserDao接口
image -
UserDaoImpl類
image -
MyBeforeAdvice前置增強類
image -
配置文件
image -
UserDao單元測試類
image -
運行結果
image