纯注解AOP编程
01 原始对象
@Service
public class UserServiceImpl implements UserService{
@Override
public void login() {
System.out.println("UserServiceImpl.login");
}
@Override
public void register() {
System.out.println("UserServiceImpl.register");
}
}
02 创建切面类
额外功能 切入点 组装切面
@Aspect
@Component
public class MyAspect {
@Pointcut("execution(* com.frame.aop..*.*(..))")
public void pointCut(){}
@Around("pointCut()")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("------------log----------");
Object res = joinPoint.proceed();
return res;
}
}
03 Spring的配置文件
@Configuration
@ComponentScan("com.frame.aop")
@EnableAspectJAutoProxy
public class AppConfig {}
04 代理创建方式的切换
- 默认使用的是JDK,可使用下面的属性进行切换
- SpringBoot 中 AOP 默认代理实现是 Cglib
@EnableAspectJAutoProxy(proxyTargetClass = true)