問題:Spring AOP 能否攔截封裝在第三方 JAR(如 JDBC 驅動)中的方法(例如 Driver.connect())?
Spring AOP 基於動態代理(JDK Proxy 或 CGLIB),**僅能攔截 Spring 容器管理的 Bean 方法呼叫**。若目標類**非**由 Spring 管理(如 DriverManager.getConnection() 內部 new Driver()),**無法直接攔截**。
@Bean
public Driver mysqlDriver() { return new com.mysql.jdbc.Driver(); }
再對此 Bean 的方法切面。p6spy、druid、flexy-pool 等現成監控庫,無需自寫切面。純 Spring AOP 只能攔截「Spring Bean 的方法呼叫」,跨越此邊界需 LTW 或 Agent。