spring心得10--使用Aspectj进行AOP开发介绍及案例分析

本文介绍了如何使用AspectJ进行AOP开发,包括添加类库、配置AOP Schema、定义通知类型如Before、After、AfterReturning、AfterThrowing和Around。还探讨了切入点表达式、通知的优先级设定以及引入通知。最后,通过两个案例分析了基于注解和基于XML配置的AspectJ开发方式。
摘要由CSDN通过智能技术生成

1.使用Aspectj进行AOP开发

使用aspectjs的操作步骤:

1)添加类库:aspectjrt.jar和aspectjweaver.jar

2)添加aop schema.

3)定义xml元素:<aop:aspectj-autoproxy>

4)编写java类,并用@Aspect注解成通知

AspectJ支持 5 种类型的通知注解:

  @Before: 前置通知, 在方法执行之前执行

  @After: 后置通知, 在方法执行之后执行

  @AfterReturning: 返回通知, 在方法返回结果之后执行

  @AfterThrowing: 异常通知, 在方法抛出异常之后

  @Around: 环绕通知, 围绕着方法执行

   配置成普通bean元素即可;下面简单介绍这几种通知的术语和使用方式,后面会通过案例分析的方式来剖解aspectjs通知编程。

前置通知:@Before

@Aspect

public class AudienceAdvice {

   @Before("execution(* WelcomeService.*(..))")

   public void takeSeats(){..}

   @Before("execution(* WelcomeService.*(..))")

   public void turnOffCellphone(JoinPoint jp){..}

   JoinPoint参数可访问连接点细节,切入方法名和参数等.

jp.getTarget()//目标对象

jp.getThis()//当前的代理对象

jp.getArgs();//方法调用参数

jp.getSignature().getName()//方法签名

后置通知:@After

    @After("execution(* *..WelcomeService.*(..))")

    public void applaud(){..}

    后置通知在目标方法执行完成之后执行.一个切面aspect包含很多通知.后置通知表明目标方法执行完之后,不论是否抛异常,都会织入该通知.

返回通知:@AfterReturning 

    方法返回后通知只在目标方法返回以后执行,若抛异常不执行.

@AfterReturning(pointcut="",returning="res")

public void xxx(Joinput jp,Object res)

   在A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值