一:aop簡介
1. 定義:將程式中的交叉業務邏輯(比如安全,日誌,事務等),封裝成乙個切面,然後注入到目標物件(具體業務邏輯)中去。(
聯想:過濾器
filter)
2.aop
的實現方式 (
1)靜態織入(最複雜,最強大):
在編譯階段,通過特殊的編譯器來實現把切面織入到目標物件
(2)載入織入:
在類的載入階段,通過
classloader
實現把切面織入到目標物件
(3)動態**(
proxy
,大部分
aop使用的方式):
在執行階段,通過動態**機制,為目標類生成乙個**物件
3.**模式及
spring
中**物件的生成方式
(1)利用jdk
中的proxy
實現:
要求我們的被**物件必須要去實現乙個**介面,**物件和被**物件本質是是實現了統一介面的兩個物件
注意:在獲得**物件的時候,應該拿**介面去接
(2)利用
cglib
來實現
被**物件不需要去實現乙個**介面,被**類和**類之間本質是父子類的關係
二者比較: 1
.要求目標物件要實現某個介面,這是個限制 2
.要求**物件是目標物件的子類。
cglib
生成的**物件的效能要好, 但是
proxy
生成的物件時間比較快
確定使用哪種方式的配置:
在配置檔案中指定是以哪種方式生成**物件
<
property
name
="proxytargetclass"
>
<
value
>
false
value
>
property
>
預設情況下是
false
,用的jdk
中proxy
實現的方式。為
true
則為cglib
的方式
什麼是Spring中的IOC和Aop
什麼是spring的ioc,aop ioc的基本概念是 不建立物件,但是描述建立他們的方式。在 中不直接與物件和服務進行連線,但在配置檔案中描述哪乙個元件需要哪一項服務。spring容器負責將這些聯絡在一起。也就是說,spring的ioc負責管理各種物件的建立,清除以及它們之間的聯絡。aop是指面向...
什麼是AOP程式設計?
什麼是aop程式設計?aop是oop的延續,是aspect oriented programming的縮寫,直譯意思 面向方面程式設計 面向切面程式設計。aop通過預編譯方式和執行期動態 實現在不修改源 的情況下給程式動態統一新增功能的一種技術。可以在 階段實現分離關注,實現松耦合,然後在執行時將相...
什麼是Spring和Spring的優點
什麼是spring框架 spring是乙個開源的一站式開發框架 它以ioc 控制反轉 和aop 面向切面 為核心 使用基本的j abean來完成以前只能由ejb來完成的工作 取代了ejb的臃腫 低效的開發模式 spring是j aee應用層中的解決方案 在表現層提供了springmvc以及strut...