idea AOP 切面

发布时间 2023-10-17 15:22:34作者: y_d_g


1 导入Maven依赖 (Aspect)

@Component
@Aspect
@Slf4j
public class LogAspent 申明的类

=========End==================End==================End==================End==================End=========
切面类: 切点+通知

execution(modifier? ret-type declaring-type?name-pattern(param-pattern) throws-pattern?)

modifier:匹配修饰符,public, private 等,省略时匹配任意修饰符
ret-type:匹配返回类型,使用 * 匹配任意类型
declaring-type:匹配目标类,省略时匹配任意类型
.. 匹配包及其子包的所有类
name-pattern:匹配方法名称,使用 * 表示通配符
* 匹配任意方法
set* 匹配名称以 set 开头的方法
param-pattern:匹配参数类型和数量
() 匹配没有参数的方法
(..) 匹配有任意数量参数的方法
(*) 匹配有一个任意类型参数的方法
(*,String) 匹配有两个参数的方法,并且第一个为任意类型,第二个为 String 类型
throws-pattern:匹配抛出异常类型,省略时匹配任意类型

使用示例:
// 匹配public方法
execution(public * *(..))

// 匹配名称以set开头的方法
execution(* set*(..))

// 匹配AccountService接口或类的方法
execution(* com.xyz.service.AccountService.*(..))

// 匹配service包及其子包的类或接口
execution(* com.xyz.service..*(..))