Spring重写切面表达式

  前边我们讲过了如何定义一个切面和如何实现Spring的AOP面向切面编程,并讲述了五种类型的通知:前置、后置、返回、异常和环绕。拿前置通知来说,我们首先需要在Spring的IOC容器之中定义一个类似于动态代理的自动动态代理器,它的功能是将切面类的对象自动的进行动态代理的处理--<aop:aspect-autoproxy></aop:aspect-autoproxy>。然后是定义一个普通的Java类,这个类需要被IOC容器管理,所以@Component,并且将这个类定义为一个切面@Aspect;我们在这个类中定义一系列的方法,并在每个方法上声明通知类型和切面表达式:@Before("execution (public void com.liucc.proxy.Myproxy.*(int ,int ))");还有当有多个切面类作用于同一个方法上时,我们可以在切面类上定义切面的优先级来说明切面的执行的先后顺序,@Order(1),值越小,优先级越高。今天我们来讲一讲重用切面表达式的内容。

  我们在前边讲过,切面表达式就是指明当前类型的通知在哪一个方法上运行,形如:execution(public void com.liucc.proxy.MyProxy.*(int,int))就是切面表达式。当一个类中有多种通知或者多个通知时,那么相同的切面表达式我们就要写好几次,而且这一个切面表达式也无法在类外部使用,为了解决切面表达式的重用性问题,我们在这个类中使用重写的切面 表达式来解决。即我们在这个类中重写定义一个方法,使用@JoinPoint("execution ( public void com.liucc.proxy.MyProxy.*(int,int)) ")标注这个方法,这样一个重写的切面表达式方法就完成了。

  重写切面表达式的方法完成之后,我们就可以在其他的通知型注解中的value值进行引用了,在同类中我们直接使用方法名来引用@Before("methodName()"),在同包下的其他类中,还要加上类名;在其他包中,还要加上包名来引用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring切面思想是指通过面向切面编程(AOP)的方式,将跨越多个对象的横切关注点(例如日志记录、事务管理、权限控制等)从核心业务逻辑中分离出来,以提高代码的模块化和可维护性。 在Spring框架中,切面是一个与业务逻辑无关的横切关注点,它可以通过定义切面类和切面方法来实现。Spring框架使用AOP代理来织入切面,以便在目标对象的方法执行前、后或异常抛出时执行切面方法。 以下是使用Spring切面的基本步骤: 1. 定义切面类:创建一个切面类,其中包含要在横切关注点上执行的方法。这些方法通常使用注解或XML配置进行标记。 2. 配置切面:将切面类配置为Spring应用程序上下文中的bean。可以使用注解或XML配置来实现此操作。 3. 定义切点:切点是在应用程序中选择连接点的表达式。可以使用注解或XML配置来定义切点。 4. 配置通知:通知是在连接点上执行的切面方法。Spring提供了多种类型的通知,包括前置通知、后置通知、环绕通知、异常通知和最终通知。可以使用注解或XML配置来定义通知。 5. 织入切面:通过配置Spring AOP,将切面织入到目标对象中。可以使用注解或XML配置来实现织入。 通过使用Spring切面思想,可以将横切关注点与核心业务逻辑解耦,从而提高代码的可重用性、可维护性和可测试性。切面可以在不修改原始代码的情况下增强应用程序的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值