AOP(Aspect Oriented Programming),面向切面编程,他是一种编程范式。
作用: 在不改变原始设计的的基础上对其进行功能增强。
几个基本概念:
连接点:所有的方法
切入点:追加功能的方法
通知:追加的功能
切面:通知和切入点之间的绑定关系
入门demo:
AOPFunc.java:
@Component
@Aspect
public class AOPFunc {@Pointcut("execution (* com.example.demo.Controller.AOPController.sayHello())")public void pt(){}@After("pt()")public void method() {System.out.println(System.currentTimeMillis());}
}
AOPController.java
@RestController
public class AOPController {@RequestMapping("/hello")public String sayHello() {System.out.println("hello");return "hello";}
}
访问localhost:运行的端口/hello,结果如下图所示,可以看到AOP已生效: