Spring 【Aspectj】进行AOP开发 (【注解】方式)
2013-12-16 21:34
656 查看
/** * 观众 */ @Aspect //切片 public class Audience { //坐下 //@Before("execution (* aspectj.Performer.*(..))") public void takeSeats(JoinPoint jp){ System.out.println("method : " + jp.getSignature().getName()); System.out.println("target : " + jp.getTarget()); // 目标对象 //代理对象(toString)值与getTarget一致,为直接toString()方法 System.out.println("this : " + jp.getThis()); System.out.println("args : " + jp.getArgs()); } //关手机 //@Before("execution (* aspectj.Performer.*(..))") public void turnOffCellPhone(){ System.out.println("turnOffCellPhone"); } //退票 //throwing 指定接收异常信息的参数 //@AfterThrowing(pointcut="execution (* aspectj.Performer.*(..))",throwing="e") public void demandRefund(Exception e){ System.out.println("退票"); System.out.println("出事了 : "); } //鼓掌(抛异常则不执行) //returning 指定接收返回值的参数 //@AfterReturning(pointcut="execution (* aspectj.Performer.*(..))",returning="ret") public void applaud(JoinPoint jp,Object ret){ System.out.println("applaud"); System.out.println("返回值为: " + ret); } //回家 //@After("execution (* aspectj.Performer.*(..))") public void goHome(){ System.out.println("回家..."); } //观看 (包含以上的所有行为) @Around("execution (* aspectj.Performer.*(..))") public Object doWatch(ProceedingJoinPoint pjp){ //@Before System.out.println("就座"); System.out.println("关手机"); Object res = null; //调用目标对象的方法 try { res = pjp.proceed(); //@AfterReturning System.out.println("鼓掌..."); } catch (Throwable e) { //@AfterThrowing System.out.println("出事了 !" + e.getMessage()); }finally{ //@After System.out.println("回家"); } //@AfterReturning return res; } }
View Code
3.配置文件
<!-- 歌手演员 --> <bean id="singer" class="aspectj.Singer"/> <!-- 观众(通知) --> <bean class="aspectj.Audience"/> <!-- 注解生效 --> <aop:aspectj-autoproxy/>
附:
相关文章推荐
- spring框架的学习(五)——Spring使用AspectJ进行AOP的开发:注解方式
- (转)Spring使用AspectJ进行AOP的开发:注解方式
- Spring使用AspectJ进行AOP的开发:注解方式
- 基于AspectJ的注解方式进行AOP开发
- 基于AspectJ的注解方式进行AOP开发
- Spring Aop开发基于AspectJ注解方式的案例
- Spring学习-21:Spring的AOP:基于AspectJ的注解开发
- spring学习笔记7--使用spring进行面向切面的(AOP)编程(1)注解方式实现
- 面向切面(AOP)之Spring接口方式 schema配置方式 aspectj注解方式
- aop:aspectj-autoproxy,SpringAOP拦截Controller,Service实现日志管理(自定义注解方式)
- SpringMVC经典系列-04基于Spring3.1注解的方式进行项目开发---【LinusZhu】
- Spring的AOP的AspectJ的开发:(注解)
- spring 4.0 AOP (使用AspectJ的注解方式 的aop实现)简单实例
- Spring -- aop, 用Aspectj进行AOP开发
- SpringMVC经典系列-02基于Spring2.5注解的方式进行项目开发---【LinusZhu】
- spring 4.0 AOP (使用AspectJ的注解方式 的aop实现)简单实例
- Spring -- aop, 用Aspectj进行AOP开发
- spring 4.0 AOP (使用AspectJ的注解方式 的aop实现)简单实例
- Spring5.0.4 AOP 使用AspectJ方式自动代理注解(@EnableAspectJAutoProxy)
- spring入门(10)---使用Aspectj进行AOP开发