Spring的代理创建
代理:
1. ProxyBeanFactory:可以随意的进行组合,已在上面篇幅有所介绍。
2. 自动代理:spring提供2个类用于自动代理服务:
a. BeanNameAutoProxyCreator:为匹配一系列名字的Bean自动创建代理,通常用于同命名规则的Bean定义一个或一组切面。配置如下:
<bean id=”autoProxy”
Class=”org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator”>
<property name=”beanNames”>
<list>
<value>XXX</value>//允许名字两端进行通配符匹配。
</list>
</property>
<property name=”interceptorNames”>
<value></value>
</property>
和ProxyBeanFactory一样,interceptorNames可以是拦截器,Advisor或通知。
b. DefaultAdvisorAutoProxyCreator:功能更强大,它只能advisor(切面和切入点的结合体)配合使用,在定义好一个Adivsor后只需简单配置一个DefaultAdvisorAutoProxyCreator的Bean。如下:
<bean id=”myAdvisor”
class=”org.springframework.aop.support.RegexpMethodPointcutAdvisor”>
<property name=”advice”>
<bean class=””XXX”>
</property>
<property name=”pattern”>
<value>.+service/..+</value>
</property>
</bean>
<bean id=”autoProxyCreator”
Class=”org.springframework.aop.framework.autoproxy.
DefaultAdvisorAutoProxyCreator”/>
权力越大责任越大,新手不建议使用它,必须对spring有比较全面了解后再行使用。