第一步:
声明切面类 @Aspect(切面)通常是一个类,里面可以定义切入点和通知
@Configuration
//告诉Spring,这是一个切面类,里面可以定义切入点和通知
@Aspect
public class LogAdvice {
//切入点表达式
@Pointcut("execution(* work.yspan.sp.service.VideoServiceImpl.*(..))")
public void aspect(){
}
//前置通知
@Before("aspect()")
public void beforeLog(JoinPoint joinPoint){
System.out.println("LogAdvice beforeLog");
}
//后置通知
@After("aspect()")
public void afterLog(JoinPoint joinPoint){
System.out.println("LogAdvice afterLog");
}
}
【spring|Spring注解配置AOP面向切面编程】第二步:配置专门用于aop配置扫描类
@Configuration
@ComponentScan("work.yspan")
@EnableAspectJAutoProxy//开启了spring对aspect的支持
public class AnnotationAppConfig {
}
测试代码:
public class App {
public static void main(String[] args){
AnnotationConfigApplicationContext context=newAnnotationConfigApplicationContext(AnnotationAppConfig.class);
VideoService videoService=(VideoService) context.getBean("videoService");
videoService.findById(54);
}
}
测试效果截图:
文章图片
推荐阅读
- Spring源码分析|【注解】Spring AOP 面向切面编程之@Around的详细用法
- 知识的宝库|Spring的AOP(面向切面编程)概念解释
- AOP|Spring AOP面向切面编程之日志记录
- spring|Spring AOP(面向切面编程)
- spring|Kubernetes、Spring Cloud和微服务
- Nginx|Nginx+Kubernetes+Spring系列等微服务+PDF
- 程序人生|微服务的构建环境比较--Spring Cloud和Kubernetes
- java|@pathvariable 和 @Requestparam的详细区别
- java|Spring Boot读取Excel表格快速上手