Spring AOP 实例

Spring AOP 中提供了两种PointcutAdvisor,分别是:

 ①org.springframework.aop.support.RegexpMethodPointcutAdvisor  (需要加上完整类名,可以用Spring提供的匹配方式)

 ②org.springframework.aop.support.NameMatchMethodPointcutAdvisor(只需要方法名,不用加类名)

下面看看使用第一种方式实现AOP的例子:

1.配置文件:

    <bean id="interceptorAdvisor"
        class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
        <!-- 业务实现方法名匹配 -->
       <property name="patterns">
        	<list>
				<value>com.a.dispatch</value>
				<value>com.b.service</value>
				<value>com.apache.xxx.dal.*DAO.*</value>	
			 </list>
        </property>
        <property name="advice">
            <ref bean="interceptorAdvice" />
        </property>
    </bean>
2.配置自己实现的advice:
 <bean id="interceptorAdvice"
    	class="com.yourImpl">
    	<property name="threshold">
    		<map>
    			<entry key="keyxxx" value="valuexxx"/>
 	
    		</map>
    	</property>
    </bean>
3.实现MethodInterceptor的invoke方法,真正执行的方法前后做相关工作,比如日志记录,数据监控等
4.添加

DefaultAdvisorAutoProxyCreator的配置:DefaultAdvisorAutoProxyCreator这个类功能更为强大,这个类的奇妙之处是他实现了BeanProcessor接口,当ApplicationContext读如所有的Bean配置信息后,这个类将扫描上下文,寻找所有的Advistor(一个Advisor是一个切入点和一个通知的组成),将这些Advisor应用到所有符合切入点的Bean中。

 <bean id="autoProxyCreator"
        class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
        <property name="proxyTargetClass" value="true"/>
    </bean>

附上spring ioc和aop精髓图:





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值