概念介紹
面向切面編程
把軟件系統(tǒng)分為兩個方面
- 核心關(guān)注點
- 橫切關(guān)注點
由于業(yè)務(wù)處理主要關(guān)注的是核心關(guān)注點,但是橫切關(guān)注點經(jīng)常發(fā)生在核心關(guān)注點多處,且使用上基本相似。比如權(quán)限認證,日志,事務(wù)處理,lazy-loading等。
關(guān)鍵技術(shù)
- 動態(tài)代理
截取消息,對該消息進行裝飾,以取代原有對象行為的執(zhí)行 - 靜態(tài)織入
引入特定的語法創(chuàng)建“方面”,從而使編譯期能夠織入有關(guān)“方面”的代碼
原理
AOP框架負責動態(tài)的生成AOP代理類,這個代理類的方法則由Advice和回調(diào)目標對象的方法所組成。
即:
代理對象的方法 = 增強處理 + 被代理對象的方法
在代理對象invoke方法調(diào)用目標對象方法時,調(diào)用配置的通知。