1. 程式人生 > >Java框架之Spring AOP (Aspect Oriented Programming) 面向切面程式設計是什麼?

Java框架之Spring AOP (Aspect Oriented Programming) 面向切面程式設計是什麼?

Spring AOP是什麼?

Spring AOP是面向切面程式設計,將功能程式碼從業務邏輯程式碼中分離出來。

允許程式通過分離的應用業務邏輯與系統級別服務

程式設計師只需專注自己的業務邏輯,而不需要管系統級服務。

容器中的物件能享有容器中的公共服務(日誌、安全)。


它是如何做到的?(原理)

通過動態代理做到這一點。

用到了代理模式,代理模式是一種靜態代理,而動態代理就是利用反射和動態編譯將代理模式變成動態的

得知被代理類後通過反射得知他的一切資訊,然後動態編譯成代理類的class檔案(動態組裝成代理類,生成java檔案,再編譯成class檔案)。