woieha320r的博客

代理

· 详见 https://woieha320r.github.io/tags/设计模式/代理/

· 如果使用Spring的声明式切面、声明式事务、声明式缓存,它们都是通过cglib动态代理实现的,要想在同类间方法调用时也触发代理行为,可以通过Spring 将其注入到字段上,然后通过它调用方法。


@Component
public class Test {
    @Autowried
    private Test self;
    // 然后通过self.method()来调用,就可以触发代理行为了。这里注入的实例不是Test类型,而是Test的代理类型(jdk为同接口的另一个类实例,cglib为Test的子类)
}