1.1 AOP基本概念
1.1.1 AOP概述
AOP(Aspect Oriented Programming),即面向切面编程。
- 通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
- AOP是OOP的延续,是软件系统开发中的一个热点,也是spring框架的一个重点。
- 利用AOP可以实现业务逻辑各个部分的隔离,从而使得业务逻辑各个部分的耦合性降低,提高程序的可重用性,同时提高开发效率。
简单理解:
aop是面向切面编程,使用动态代理技术,实现在不修改java源代码的情况下,运行时实现方法功能的增强。
1.1.2 AOP作用
#作用
使用动态代理技术,在程序运行期间,不修改java源代码对已有方法功能进行增强
#优势
1.减少重复代码,提高开发效率。
2.统一管理统一调用,方便维护。
1.1.3 AOP常用术语
#Joinpoint(连接点)
在spring中,连接点指的都是方法(指的是那些要被增强功能的候选方法)
#Pointcut(切入点)
在运行时已经被spring 的AOP实现了增强的方法。
#Advice(通知)
通知指的是拦截到Joinpoint之后要做的事情。即增强的功能。
通知类型:前置通知、后置通知、异常通知、最终通知、环绕通知。
#Target(目标对象)
被代理的对象。比如动态代理案例中的演员。
#Proxy(代理)
一个类被AOP织入增强后,即产生一个结果代理类。
#Weaving(织入)
织入指的是把增强用于目标对象。创建代理对象的过程。
#Aspect(切面)
切面指的是切入点和通知的结合
1.2 完全xml配置AOP
1.2.1 项目目录
1.2.2 配置pom.xml
<properties>
<!--spring版本-->
<spring.version>5.0.2.RELEASE</spring.version>
<!--aopalliance版本-->
<aopalliance.version>1.0</aopalliance.version>
</properties>
<dependencies>
<!-- spring aspects依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version