ProxyFactoryBean
在Spring中,所有的Bean都是BeanFactory(也就是IOC容器)来进行管理的。但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能产生或者修饰对象生成的工厂Bean。ProxyFactoryBean就是这样的Bean。
自动代理
Spring的代理在上层中主要分为ProxyCreatorSupport和ProxyProcessorSupport,前者是基于代理工厂,后者是基于后置处理器,也可以认为后置就是自动代理器。
- AbstractAutoProxyCreator继承自BeanPostProcessor,这个接口有一个前置处理和后置处理,所以会对实例化的Bean进行包装成Aop对象,这样IOC容器里的Bean有升级成代理对象了。
CglibAopProxy
- 这个类里面有个静态内部类DynamicAdvisedInterceptor的intercept方法,当对象对方法进行调用时,转而进入这个类的intercept方法。
- Enhancer类是Cglib里面的方法,这个英文的意思是增强的意思。
- getProxy()方法生成动态代理对象。
JdkDynamicAopProxy
- 通过JDK的方式实现代理。