详解在Spring中如何自动创建代理
Spring 提供了自动代理机制,可以让容器自动生成代理,从而把开发人员从繁琐的配置中解脱出来 。具体是使用 BeanPostProcessor 来实现这项功能。BeanPostProcessor 代理创建器的实现类可以分为 3 类:。BeanPostProcessor 类继承关系所有的自动代理器类都实现了 BeanPostPorcessor ,在容器实例化 Bean 时, BeanPostProcessor 将对它进行加工处理,所以自动代理创建器能够对满足匹配规则的 bean 自动创建代理对象。也可以通过 list 方式来指定 beanNames 的值:p:optimize 设置为 true,则表示使用 CGLib 动态代理技术。测试代码与输出结果与上一小节的 BeanNameAutoProxyCreator 相同。CGLib 动态代理是通过动态生成代理子类来实现方法拦截,所以必须确保要拦截的目标方法可以被子类所访问,也就是目标方法必须定义为非 final, 且非私有实例方法 。
用户评论