【Spring】25、Spring代理。 BeanNameAutoProxyCreator 与 ProxyFactoryBean
一般我们可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames实现,但如果需要代理的bean很多,无疑会对spring配置文件的编写带来繁重的工作,这时就该BeanNameAutoProxyCreator出场了。 (一)ProxyFactoryBean属性介绍 target:代理的目标类 proxyInterfaces:代理类应该实现的接口列表 interceptorNames:需要应用到目标对象上的通知Bean的名字.可以是拦截器,advisor和其他通知类型的名字。这个属性必须按照在BeanFactory中的顺序设置 singleton:单例 aopProxyFactory:使用的ProxyFactoryBean实现。Spring带有两种实现(JDK动态代理和CGLIB)。通常不需要使用这个属性 exposeProxy:目标对象是否需要得到当前的代理。通过调用AopContext.getCurrentProxy实现。 frozen:一旦工厂被创建,是否可以修改代理的通知。当设置为true时,在运行时就不能修改ProxyFactoryBean了。通常不需要使用这个属性。 optimize:是否对创建的代理进行优化(只适用于CGLIB) ProxyTargetClass:是否代理目标类,而不是实现接口