Spring AOP实践

Posted 狂乱的贵公子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring AOP实践相关的知识,希望对你有一定的参考价值。

Spring AOP和AspectJ是AOP的两种不同实现。前者是动态代理,后者是静态代理。

AOP的作用就是分离关注点,它将与业务无关的逻辑抽离出来单独封装成模块,实现核心业务与通用的逻辑的解耦。

首先,有几个概念需要了解一下:

  • aspect(方面):简单的理解,将公共的逻辑剥离出来并封装成模块,这个模块就是aspect,可以理解成就是一个功能,比如:事务就是一个功能
  • joinpoint(连接点):在Spring AOP中连接点就是一个方法
  • advice(通知):在特定的连接点所采取的动作
  • pointcut(切入点):可以这样理解,切入点就是指明哪些方法调用需要应用通知
  • target object(目标对象):实际调用的方法

为了方便理解,我们这样想:aspect就是我们要实现的功能,那么这个功能所要做的事情就是advice,这些功能应用到哪些地方就是pointcut。

在Spring AOP中,定义一个AOP功能只需要三步:

1、声明aspect

2、定义joinpoint

3、定义advice

 

下面的示例采用了两种方式来实现一个AOP功能

工程结构如下

依赖的jar如下

 

第一种:基于@AspectJ注解的方式

第二种:基于XML配置文件的方式

 

以上是关于Spring AOP实践的主要内容,如果未能解决你的问题,请参考以下文章

第06篇: Spring AOP面向切面编程,最佳实践分享。

Spring-AOP之工作实践

Spring-AOP之工作实践

spring 中aop 切面实践

Spring入门之AOP实践:@Aspect + @Pointcut + @Before / @Around / @After

Spring中关于AOP的实践之Scheme方式实现通知