AOP,即Aspect Oriented Programming(面向切面編程),是面向對象編程的擴展和補充。它通過預編譯方式和運行期動態代理實現程序功能的統一維護。AOP可以對業務邏輯的各個部分進行隔離,從而降低業務邏輯各部分之間的耦合度,提高程序的可重用性,同時提高開發效率。
在Java中,Spring框架提供了強大的AOP支持。通過Spring AOP,開發者可以定義切面(Aspect),切面包含了通知(Advice)和切入點(Pointcut)兩部分。通知是切面的具體行為,例如在方法執行前打印日志、執行后檢查異常等。切入點則定義了在何處應用通知,即哪些方法或類會被切面所影響。Spring AOP默認使用JDK動態代理來實現AOP功能,同時也支持CGLIB代理。