Spring Aop注解


import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

//告诉spring进行扫描
@Component
//告诉Spring 这个类为切入类
@Aspect
public class LogAdvice {

//切入点表达式
@Pointcut("execution(* 需要切入的类的路径.*(..))")
public void aspect(){

}

//前置通知
@Before("aspect()")
public void beforeLog(JoinPoint joinPoint){
System.out.println("LogAdvice before");
}
//后置通知
@After("aspect()")
public void afterLog(JoinPoint joinPoint){
System.out.println("LogAdvice after");
}
}


创建一个新类

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

//告诉Spring这是一个配置类
@Configuration
//开启Spring 对aspect的支持
@EnableAspectJAutoProxy
//扫描整个项目
@ComponentScan("com.example")
public class AnnotationAppConfig {
}

入口类

public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AnnotationAppConfig.class);
////记得在配置类中注入Bean
    VideoService videoService = (VideoService) context.getBean("videoService");
videoService.findById(2);
}



配置类

import com.example.service.VideoService;
import com.example.service.impl.VideoServiceImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {

@Bean
VideoService videoService(){
return new VideoServiceImpl();
}
}


posted @ 2021-11-28 15:17  智慧搬运工  阅读(77)  评论(0)    收藏  举报