Spring注解配置AOP面向切面编程

第一步:
声明切面类 @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");
    }
}

第二步:配置专门用于aop配置扫描类

@Configuration
@ComponentScan("work.yspan")
@EnableAspectJAutoProxy//开启了spring对aspect的支持
public class AnnotationAppConfig {
}

测试代码:

public class App {
    public static void main(String[] args){
        AnnotationConfigApplicationContext context=new 	AnnotationConfigApplicationContext(AnnotationAppConfig.class);
 		VideoService videoService=(VideoService) context.getBean("videoService");
        videoService.findById(54);
          }
}

测试效果截图:
Spring注解配置AOP面向切面编程_第1张图片

你可能感兴趣的:(spring,boot,spring)