这是一篇基于SpringBoot非常简单的Aop应用。
首先我们在配置Aop时先了解一下SpirngBoot 2.0前后的新特性。
1.Spring Boot 2.0 之前的动态代理,有接口,就使用jdk动态代理,没接口,就使用cglib动态代理
2.从 Spring Boot 2.0 开始,动态代理统一使用cglib,无论被代理的对象有没有接口
到这里我们先来看看准备工作。

aop应用,我们只需要添加这样一个spring-boot-starter-aop依赖。

这是我的包结构。
首先编写的是service层的MyService接口。

很简单,就这样一个东西。
其次是MyServiceImpl实现类。

接着编写controller接口,这里返回字符串,因此要用@RestController注解

从spring容器中取出myService,在控制台中打印结果,
最后自定义一个简单的aop,只需要添加下面三个注解即可
@Component
@EnableAspectJAutoProxy
@Aspect
public class LosAspect{
@Pointcut("execution(* com.qf.hjp.aop.service.*.*(..))")
public void pointcut(){
}
@Before("pointcut()")
public void before(JoinPoint jp){
String name = jp.getSignature().getName();
System.out.println(name + " 方法开始执行了...");
}
}测试:

为什么会使JDK动态代理呢,难道小编用的是SpringBoot老版本吗,不是的,是因为我在application.properties中配置了一个东西,

把这个东西注释掉或者改为true,测试结果便是cglib动态代理
版权声明:本文为Jumpingyyds原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。