AOP是面向切面编程。是指通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。简单来讲就是不改变原来业务代码的情况下给程序动态的添加功能的一种技术。例如通过AOP进行 日志记录、异常处理、事务处理等。
引入依赖包:spring-aspects
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>
先来个业务方法:只打印一句话
public class FunAspects {
//业务逻辑
public void fun(){
System.out.println("-----------------执行业务Function--------");
}
}
比如我们想对这个业务方法进行增强,做一下日志记录,那应该怎么做呢?
Spring提供了五种通知方法注解:
1、前置通知: 在我们执行业务方法之前运行(@Before)
2、后置通知:;在我们业务方法运行结束之后 ,不管有没有异常(@After)
3、返回通知:在我们的业务方法正常返