spring-boot-starter-aop
spring-boot-starter-aop
spring-boot-starter-aop 自动配置行为由两部分内容组成:
- 位于 spring-boot-autoconfigure的
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration 提供 @Configuration 配
置类和相应的配置项。 - spring-boot-starter-aop 模块自身提供了针对 spring-aop、aspectjrt 和 aspectjweaver 的依赖。
一般情况下,只要项目依赖中加入了 spring-boot-starter-aop,其实就会自动触发 AOP 的关联行为,
包括构建相应的 AutoProxyCreator,将横切关注点织入(Weave)相应的目标对象等,不过
AopAutoConfiguration 依然为我们提供了可怜的两个配置项,用来有限地干预 AOP 相关配置:
spring.aop.auto=true
spring.aop.proxy-target-class=false
对我们来说,这两个配置项的最大意义在于:允许我们投反对票,比如可以选择关闭自动的 aop 配置
(spring.aop.auto=false),或者启用针对 class 而不是 interface 级别的 aop 代理(aop proxy)。现
在以日志加强的形式来分析一下 aop 使用方法
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
新建一个切片处理类,加入@Aspect注解和@Component注解
@Aspect
@Component
public class LogAspect {
定义切片与切面处理方法
))")//切入点描述 这个是controller包的切入点
public void controllerLog() {
}//签名,可以理解成这个切入点的一个名称
@Before("controllerLog()") //在切入点的方法run之前要干的
public void logBeforeController(JoinPoint joinPoint) {
....................
}