Spring AOP是什麼?
Spring AOP是面向切面程式設計,将功能代碼從業務邏輯代碼中分離出來。
它允許程式通過分離的應用業務邏輯與系統級别服務。
程式員隻需專注自己的業務邏輯,而不需要管系統級服務。
容器中的對象能享有容器中的公共服務(日志、安全)。
它是如何做到的?(原理)
通過動态代理做到這一點。
用到了代理模式,代理模式是一種靜态代理,而動态代理就是利用反射和動态編譯将代理模式變成動态的。
得知被代理類後通過反射得知他的一切資訊,然後動态編譯成代理類的class檔案(動态組裝成代理類,生成java檔案,再編譯成class檔案)。