spring-aop 的 基础使用 -3 - 切点表达式 的提取、复用

spring-aop 的 基础使用(啥是增强类、切点、切面)- 2

的基础上,

这里说的是,切点表达式 的 提取 和 复用

目录

MyAdviceCopy类

java 复制代码
package com.english.advice;

import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component;

/**
 * 切点表达式 的 提取 和 复用
 *  方式1、当前类中提取(不推荐)
 *      首先:定义一个空方法 public void pc(){}
 *      然后,@Pointcut("execution(* com..impl.*.*(..))") 修饰 pc 方法
 *      最后,在别的 增强注解中使用即可,例如:
 *              @After("pc()")
 *              public void after(){
 *                  System.out.println("after");
 *              }
 *
 *  方式2、创建一个存储切点的类
 *      只不过使用的时候,要这样:类的权限定符.方法名()
 *
 */
@Aspect
@Component
public class MyAdviceCopy {

    @Pointcut("execution(* com..impl.*.*(..))")
    public void pc(){}

	// 方式1 的使用
    @After("pc()")
    public void after(){
        System.out.println("after");
    }

	// 方式2 的使用
    @Before("com.english.pointcut.MyPointCut.pc()")
    public void start(){
        System.out.println("start");
    }

	// 方式2 的使用
    @AfterThrowing("com.english.pointcut.MyPointCut.mypc()")
    public void error(){
        System.out.println("error");
    }
}

MyPointCut 类(上面用到了)

java 复制代码
package com.english.pointcut;

import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Component
public class MyPointCut {
    @Pointcut("execution(* com..impl.*.*(..))")
    public void pc(){}

    @Pointcut("execution(* com.english.service.impl.*.*(..))")
    public void mypc(){}
}
相关推荐
磊 子1 天前
C++移动语义和智能指针
java·开发语言·c++
JAVA面经实录9171 天前
Elasticsearch 完整版完整知识体系
java·elasticsearch·搜索引擎·es
hikktn1 天前
ORA-01861 日期格式错误的根治方案:从 SQL 层到 Java 层的标准化治理
java·python·sql
雪宫街道1 天前
SpringBoot 静态资源映射规则与定制
java·spring boot·后端·spring
宸津-代码粉碎机1 天前
Spring AI企业级实战|智能记忆摘要+自动遗忘机制落地,彻底解决上下文爆炸与Token冗余
java·大数据·人工智能·后端·python·spring
南极企鹅1 天前
springboot项目不退出的原因
java·spring boot·后端
devilnumber1 天前
Java 二分查找(二分算法)详解 + 实战运用 + 核心坑点
java·开发语言·算法
仍然.1 天前
SpringBoot快速上手
java·spring boot·后端
ch.ju1 天前
Java程序设计(第3版)第四章——重载和覆盖的区别
java·开发语言
仍然.1 天前
Spring MVC(1)---介绍Spring MVC 和 请求数据
java·spring·mvc