七.Spring AOP 之增强
来源:互联网 发布:考研数学网络课程 编辑:程序博客网 时间:2024/05/21 06:25
类型:前置、后置、环绕、异常抛出、引介
一.前置
Waiter接口有两个方法,一个greetTo,一个serveTo。NaiveWaiter为其实现类。待织入类GreetingBeforeAdvice需要实现了MethodBeforeAdvice接口,有一个before方法(三个参数(Method method, Object[] args, Object obj)),obj目标实例, args为方法参数。此方法可以捕捉到greetTo,serveTo方法参数。
<beanid="greetingBefore"class=“……..GreetingBeforeAdvice" />①<bean id="target" class=“…….NaiveWaiter" />②<bean id="waiter" class="org.springframework.aop.framework.ProxyFactoryBean" p:proxyInterfaces=“…….Waiter" ③ p:interceptorNames="greetingAdvice,...,..."④ p:target-ref="target"⑤/>常用:对类增强,不用接口<bean id=“waiter“ class=”org.springframework.aop.framework.ProxyFactoryBean“ …… …… p:proxyTargetClass="true“ />
二.后置增强,差别不大,接口,接口实现类,待织入类实现后置接口,配置好XML即可
三.环绕增强
接口,接口实现类,待织入类实现环绕接口。
public class GreetingInterceptor implements MethodInterceptor { public Object invoke(MethodInvocation invocation) throws Throwable { Object[] args = invocation.getArguments(); String clientName = (String)args[0]; System.out.println("GreetingInterceptor:How are you!Mr."+clientName+"."); Object obj = invocation.proceed(); System.out.println("GreetingInterceptor:Please enjoy yourself!"); return obj; }}
然后配置到XML。和前后置一样。
四.异常抛出增强
业务实现类ForumService有两业务方法,TransactionManager和updateForum都可能抛出异常,业务增强类TransactionManager实现ThrowsAdvice接口
public class TransactionManager implements ThrowsAdvice { public void afterThrowing(Method method, Object[] args, Object target, Exception ex) throws Throwable { System.out.println("-----------"); System.out.println("method:" + method.getName()); System.out.println("抛出异常:" + ex.getMessage()); System.out.println("成功回滚事务。"); }}
配置的时候可稍微修改,不配置接口Bean,而配置实现类Bean
<bean id="forumService" class="org.springframework.aop.framework.ProxyFactoryBean" p:interceptorNames="transactionManager" p:target-ref="forumServiceTarget" p:proxyTargetClass="true" />
五.引介增强
不是在目标方法周围织入增强,而是为目标创建新的方法和属性
0 0
- 七.Spring AOP 之增强
- Spring AOP之增强介绍
- Spring AOP之增强(aspectj)
- Spring AOP(一)之Before增强处理
- Spring AOP(二)之AfterReturning增强处理
- Spring AOP(三)之AfterThrowing增强处理
- Spring AOP(四)之After增强处理
- Spring AOP(五)之Around增强处理
- spring aop 之增强器处理
- Spring AOP 增强类型
- Spring AOP--引入增强
- Spring AOP增强类型
- Spring Aop增强
- spring aop 增强
- Spring AOP 增强类型
- Spring AOP(七)之定义切入点
- Spring学习(二十五)Spring AOP之增强介绍
- Spring AOP的实现原理之获取增强器Adivors
- 查看 KeyStore 文件详细信息命令
- 关于使用SlidingMenu时踩过的几个坑~~~
- 打造炫酷通用的ViewPager指示器
- 加密算法
- Linux 设备驱动开发 — platform设备驱动应用实例解析
- 七.Spring AOP 之增强
- 继承与组合混搭的构造和析构
- 基础c语言程序设计2
- js中,一个js中的函数,第一句var thiz = this; 为什么要这样做?
- 如何在O(N)的时间复杂度内找出数组中出现次数超过了一半的数
- 最长非递减子序列
- 设计模式六大原则的理解
- uva 1627
- angularJS