惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
P
Proofpoint News Feed
L
LINUX DO - 热门话题
P
Palo Alto Networks Blog
A
About on SuperTechFans
T
Tenable Blog
M
MIT News - Artificial intelligence
IT之家
IT之家
I
Intezer
D
DataBreaches.Net
爱范儿
爱范儿
T
Threatpost
C
CERT Recently Published Vulnerability Notes
云风的 BLOG
云风的 BLOG
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
K
Kaspersky official blog
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Y
Y Combinator Blog
Cyberwarzone
Cyberwarzone
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Darknet – Hacking Tools, Hacker News & Cyber Security
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
Spread Privacy
Spread Privacy
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
AWS News Blog
AWS News Blog
博客园 - 聂微东
C
Check Point Blog
S
Securelist
有赞技术团队
有赞技术团队
雷峰网
雷峰网
aimingoo的专栏
aimingoo的专栏
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
MongoDB | Blog
MongoDB | Blog
D
Docker
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tailwind CSS Blog
L
Lohrmann on Cybersecurity
G
Google Developers Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LangChain Blog

博客园 - 立3807

ROS 系统架构及概念 ROS 在 Ubuntu 18.04 安装 利用 Skywalking 搭建 APM(应用性能管理)— 安装与配置 elasticsearch 集群搭建及启动常见错误 Git 基本操作 Git 环境配置 Git 安装 Git 基础和原理 Spring Cloud(Dalston.SR5)--Config 集群配置中心-加解密 Spring Cloud(Dalston.SR5)--Config 集群配置中心-刷新配置 Java NIO 概述 Spring Boot - AMQP 消息中间件 Spring Boot - AOP(面向切面) Spring Boot - 基础 POM 文件 Spring Boot - 配置介绍 Spring Boot - 项目构建与解析 Mycat 镜像-创建 Docker 镜像 Spring Cloud(Dalston.SR5)--Config 集群配置中心 Spring Cloud(Dalston.SR5)--Zuul 网关-Hystrix 回退 Spring Cloud(Dalston.SR5)--Zuul 网关-过滤器
Spring Boot - AOP(面向切面)-切入点表达式
立3807 · 2018-05-07 · via 博客园 - 立3807

切入点指示符用来指示切入点表达式目的,在 Spring AOP 中目前只有执行方法这一个连接点,Spring AOP 支持的 AspectJ 切入点指示符,切入点表达式可以使用 &&||、!来组合切入点表达式,还可以使用类型匹配的通配符来进行匹配,类型通配符如下:

类型匹配通配符

说明

*

表示匹配任何数量字符。示例:java.*.String,表示匹配 java 包下的任何"一级子包"下的 String 类型; 如匹配 java.lang.String,但不匹配java.lang.ss.String

..

表示任何数量字符的重复,如在类型模式中匹配任何数量子包;而在方法参数模式中匹配任何数量参数。示例:java..* ,表示匹配java包及任何子包下的任何类型; 如匹配java.lang.String、java.lang.annotation.Annotation

+

仅能作为后缀放在类型模式后边,匹配指定类型的子类型;

详细说明如下:

  • execution:用于匹配方法执行的连接点,配置切入点示例 @Pointcut("execution(切入点表达式)"),切入点表达式格式如下:execution(annotation? modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) throws-pattern?)

切入点表达式示例

说明

public * *(..)

任何公共方法的

@org.lixue.EnableLogTrace public * *(..)

使用 org.lixue.EnableLogTrace 注解标注的任何公共方法

* org.lixue..LogTrace+.*()

org.lixue 包及所有子包下 LogTrace接口及子类型的的任何无参方法

  • within:用于匹配指定类型内的方法执行;配置切入点示例 @Pointcut("within(切入点表达式)")

切入点表达式示例

说明

org.lixue..*

在 org.lixue 包或所有子包的任何方法执行

org.lixue..AccountService

在 org.lixue 包或所有子包下 AccountService 类型的任何方法

org.lixue..LogTrace+

在 org.lixue 包或所有子包下 LogTrace 类型及子类型的任何方法

  • this:用于匹配当前AOP代理对象类型的执行方法;注意是AOP代理对象的类型匹配,这样就可能包括引入接口也类型匹配;注意this中使用的表达式必须是类型全限定名,不支持通配符。配置切入点示例:@Pointcut("this(org.lixue.LogTrace)")

切入点表达式示例

说明

org.lixue.LogTrace

AOP代理对象的类型实现了 org.lixue.LogTrace 接口的任何方法

  • target:用于匹配当前目标对象类型的执行方法;注意是目标对象的类型匹配,这样就不包括引入接口也类型匹配;注意target中使用的表达式必须是类型全限定名,不支持通配符;配置切入点示例:@Pointcut("target(org.lixue.LogTrace)")

切入点表达式示例

说明

org.lixue.LogTrace

实现了 org.lixue.LogTrace 接口的任何方法

  • args:用于匹配当前执行的方法传入的参数为指定类型的执行方法;参数类型列表中的参数必须是类型全限定名,通配符不支持;args属于动态切入点,这种切入点开销非常大,非特殊情况最好不要使用;注意:匹配传入的参数类型,不是匹配方法签名的参数类型。,配置切入点示例@Pointcut("args(java.lang.String,java.lang.String)")

切入点表达式示例

说明

args (java.io.Serializable,..)

任何一个以接受"传入参数类型为 java.io.Serializable" 开头,且其后可跟任意个任意类型的参数的方法执行

args(java.lang.String,java.lang.String)

任何一个以接受传入两个参数并且类型为 java.lang.String

  • @within:用于匹配所以持有指定注解类型内的方法;配置切入点示例 @Pointcut("@within(注解类型)"),注解类型也必须是全限定类型名

切入点表达式示例

说明

org.lixue.EnableLogTrace

使用 org.lixue.EnableLogTrace 注解的任何类型的任何方法必须是在目标对象上声明这个注解,在接口上声明的对它不起作用

  • @target:用于匹配当前目标对象类型的执行方法,其中目标对象持有指定的注解;配置切入点示例@Pointcut("@target(注解类型)"),注解类型也必须是全限定类型名

切入点表达式示例

说明

org.lixue.EnableLogTrace

使用 org.lixue.EnableLogTrace 注解的任何类型的任何方法必须是在目标对象上声明这个注解,在接口上声明的对它不起作用

  • @args:用于匹配当前执行的方法传入的参数持有指定注解的执行;

切入点表达式示例

说明

org.lixue.EnableLogTrace

使用 org.lixue.EnableLogTrace 注解的任何类型的任何方法必须是在目标对象上声明这个注解,在接口上声明的对它不起作用

  • @annotation:用于匹配当前执行方法持有指定注解的方法,配置切入点示例 @Pointcut("@annotation(注解类型)"),注解类型也必须是全限定类型名

切入点表达式示例

说明

org.lixue.EnableLogTrace

使用 org.lixue.EnableLogTrace 注解的任何方法

本文版权归作者 李雪(博客地址:https://www.cnblogs.wiki)所有,欢迎转载和商用,请在文章页面明显位置给出原文链接并保留此段声明,否则保留追究法律责任的权利,其他事项,可留言咨询。