代理是使用非常廣泛的設(shè)計模式。簡單來說,代理是一個看其他像另一個對象的對象,但它添加了一些特殊的功能。
Spring AOP是基于代理實現(xiàn)的。AOP 代理是一個由 AOP 框架創(chuàng)建的用于在運行時實現(xiàn)切面協(xié)議的對象。
Spring AOP默認為 AOP 代理使用標(biāo)準(zhǔn)的 JDK 動態(tài)代理。這使得任何接口(或者接口的集合)可以被代理。Spring AOP 也可以使用 CGLIB 代理。這對代理類而不是接口是必須的。
如果業(yè)務(wù)對象沒有實現(xiàn)任何接口那么默認使用CGLIB。