java - 在 aspect 中读取注释属性

标签 java spring aop aspectj

如何读取aspect中的注解属性值?

我希望我的Around 建议对所有用 @Transactional(readonly=false) 注释的关节点执行。强>.

@Around("execution(* com.mycompany.services.*.*(..)) "
+ "&& @annotation(org.springframework.transaction.annotation.Transactional)")
public Object myMethod(ProceedingJoinPoint pjp) throws Throwable {
}

最佳答案

您可以在不手动处理签名的情况下这样做(argNames 用于在没有调试信息的情况下编译时保留参数名称):

@Around(
    value = "execution(* com.mycompany.services.*.*(..)) && @annotation(tx)",
    argNames = "tx") 
public Object myMethod(ProceedingJoinPoint pjp, Transactional tx) 
    throws Throwable {
    ...
} 

参见 7.2.4.6 Advice parameters

关于java - 在 aspect 中读取注释属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2499697/

相关文章:

java - 如何修复 ' org.hibernate.TransientPropertyValueException'?

java - 非服务类的 Spring AOP

java - 在两个Web应用程序之间共享Spring切面类

java - 如何安排任务定期运行?

java - 使用 Spring Data 在 Spring Boot 应用程序中 Autowiring DynamoDB 存储库

java - Java中 block 的排序日期列表

java - hibernate @ManyToOne 无法正确插入,因为 FK id 尚未创建

java - Spring 批处理中的链接步骤

Java 网络应用程序 : how to implement a web bug (1x1 pixel)?

mono - 有人在 Mono 下使用过任何 AOP 产品吗?