版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34598667/article/details/83417459
Spring的基于AspectJ的AOP开发
之前我们已经讲过了实现AOP的两种方式,那么下面我们讲一下Spring中的AOP开发。与Spring中的IOC控制反转类似,我们可以在xml中实现和使用注解实现,Spring提供了两种切面声明方式:
- 基于XML配置方式声明切面。
- 基于注解方式声明切面。
为了使用Spring的注解方式进行面向切面编程,需要在项目中加入与AOP相关的jar包:
没有jar的朋友可以来这里下载:https://download.csdn.net/download/qq_34598667/10750269
要进行AOP编程,我们接着要在Spring的配置文件——beans.xml中引入aop命名空间:
xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd"
添加完之后的xml为:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
</beans>
AOP开发中的相关术语
-
Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为 spring只支持方法类型的连接点.
-
Pointcut(切入点):所谓切入点是指我们要对哪些Joinpoint进行拦截的定义.
-
Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情就是通知.通知分为前置 通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)
-
Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在 运行期为类动态地添加一些方法或Field.
-
Target(目标对象):代理的目标对象
-
Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程.
spring采用动态代理织入,而AspectJ采用编译期织入和类装载期织入
-
Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类
-
Aspect(切面): 是切入点和通知(引介)的结合
下面我们基于此章讲解Spring的基于AspectJ的AOP开发的两种方式,先从基于XML配置方式开始,请点击链接: