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

  • Post author:
  • Post category:其他


第一步:

声明切面类 @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);
          }
}

测试效果截图:

在这里插入图片描述



版权声明:本文为weixin_43432438原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。