@within详解
时间: 2023-07-03 10:22:54 浏览: 57
`@within` 是 Spring AOP 中用于匹配类上的注解的切入点表达式指示器,它可以匹配所有被指定注解标注的类及其子类中的方法。具体用法如下:
```java
@Around("@within(com.example.MyAnnotation)")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
// ...
}
```
上述示例中,`@within(com.example.MyAnnotation)` 表示匹配所有被 `com.example.MyAnnotation` 注解标注的类,`@Around` 则表示将切面织入到匹配的类中的所有方法中。
除了 `@within`,Spring AOP 还提供了其他切入点表达式指示器用于匹配不同的切入点,例如 `@annotation` 用于匹配方法上的注解,`execution` 用于匹配方法执行等等。
需要注意的是,`@within` 只能匹配类上的注解,如果需要匹配方法上的注解,可以使用 `@annotation`。此外,切入点表达式中的注解类必须是运行时存在的,否则会抛出 `ClassNotFoundException` 异常。
相关问题
@target详解
`@target` 是 Spring AOP 中用于匹配类上的注解的切入点表达式指示器,它可以匹配所有直接使用指定注解标注的类及其子类中的方法。具体用法如下:
```java
@Around("@target(com.example.MyAnnotation)")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
// ...
}
```
上述示例中,`@target(com.example.MyAnnotation)` 表示匹配所有直接使用 `com.example.MyAnnotation` 注解标注的类,`@Around` 则表示将切面织入到匹配的类中的所有方法中。
需要注意的是,`@target` 只能匹配直接使用指定注解标注的类,如果需要匹配间接被注解标注的类,可以使用 `@within`。此外,切入点表达式中的注解类必须是运行时存在的,否则会抛出 `ClassNotFoundException` 异常。
切面表达式within
引用<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [【Spring AOP】@Aspect结合案例详解(二): @Pointcut使用@within和within](https://download.csdn.net/download/scm_2008/87381444)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [Spring的AOP切面表达式](https://blog.csdn.net/qq_40198004/article/details/106156069)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [AOP 使用指南](https://blog.csdn.net/Message_lx/article/details/125858088)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]