一、BeanNameAutoProxyCreator简介

BeanNameAutoProxyCreator是Spring框架中AOP技术的实现类,它是一个自动代理创建器,可以根据给定的模式匹配Bean定义名称,然后创建一个代理类,该代理类将扩展指定的拦截器链,以拦截Bean方法调用。

二、BeanNameAutoProxyCreator使用

1、使用BeanNameAutoProxyCreator,首先需要在spring配置文件中定义一个BeanNameAutoProxyCreator,并为其指定一个唯一的beanName,如下:

2、指定拦截器:BeanNameAutoProxyCreator中的interceptorNames属性用于指定拦截器,可以指定多个拦截器,他们将按照定义的顺序执行,如上例中指定的transactionInterceptor拦截器,它将会拦截所有以Service结尾的Bean。

3、指定BeanName:BeanNameAutoProxyCreator中的beanNames属性用于指定需要拦截的Bean名称,可以使用通配符来指定,如上例中的*Service,表示拦截所有以Service结尾的Bean。

三、BeanNameAutoProxyCreator优缺点

1、优点:BeanNameAutoProxyCreator能够根据给定的模式匹配Bean定义名称,然后创建一个代理类,该代理类将扩展指定的拦截器链,以拦截Bean方法调用,这样可以很方便的对指定的Bean进行拦截。

2、缺点:BeanNameAutoProxyCreator只能拦截指定的Bean,而不能对整个类进行拦截,也不能拦截接口。