编程语言
首页 > 编程语言> > 面向切面编程 AOP你知多少?

面向切面编程 AOP你知多少?

作者:互联网

面向切面编程 AOP

核心概念

横切关注点

通知 Advice

连接点 JointPoint

切入点 Pointcut

切面 Aspect

目标 target

织入 Weaving

AOP代理



通知类型

切入点表达式

访问修饰符       返回值类型(必填)     包和类       方法(必填)
@Pointcut("execution(public int net.xdclass.sp.service.VideoOrderService.*(..))")

常见匹配语法

AOP注解

步骤:

  1. 开启SpringAOP注解配置

    @Configuration
    @ComponentScan("net.xdclass")
    @EnableAspectJAutoProxy  //开启了spring对aspect的支持
    public class AnnotationAppConfig {
    
    }
    
  2. 配置切入点和通知

    @Component
    @Aspect  //告诉spring,这个一个切面类,里面可以定义切入点和通知
    public class LogAdvice {
    
    
        //切入点表达式
        @Pointcut("execution(* net.xdclass.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");
        }
    
    }
    

PropertySource注解

@Configuration
@PropertySource(value = {"classpath:config.properties"})
public class CustomConfig {

    @Value("${server.host}")
    private String host;

    @Value("${server.port}")
    private int port;

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }
}



开启事务

  1. 在入口类使用注解 @EnableTransactionManagement 开启事务
  2. 类或方法上加 @Transactional

标签:..,通知,切入点,知多少,切面,AOP,方法,public
来源: https://blog.csdn.net/qq_45740561/article/details/118830275