AOP面向切面编程,是一种抽象化的面向对象编程,也可以理解为对面向对象编程的补充
下面来举一个打印日志的例子
问题描述:写一个计算器的实现类,实现加减乘除功能,并在进行计算前日志输出方法,计算后输出结果。不使用AOP的话,我们可以直接在实现类中加两行输出。这样的话就是日志和业务混合在一起,现在方法少可以这样做,但设想一下,如果以后我们写了100,1000,10000.....个方法,每个方法都去加两行输出,这个任务量是极大且浪费时间的,因此我们要合理的使用AOP,在方法开始和结束前定义两个切面,然后再方法执行前后,就会自动实现切面里的内容,这样将日志代码全部抽象出去,统一进行处理,计算器方法只保留核心的业务代码,做到了核心业务和非核心业务代码的解耦合。
使用AOP的步骤如下
引入pom依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.3.15</version>
</dependency>
(1)首先定义一个接口,定义加减乘除
public interface Cal {
public int add(int i,int j);
public int sub(int i,int j);
pub