java - Aspectj 默认构造函数切入点

标签 java annotations aop aspectj pointcut

我正在处理一些 AspectJ 代码,我想捕获所有非私有(private)切入点的执行。

@Pointcut("execution(public * *(..))")//Public
public void publicMethod(){};
@Pointcut("execution(protected * *(..))"//Protected
public void protectedMethod(){}

@Pointcut("@annotation(mypackage.name.annotationName")
public void annotationPointcut(){}

@Around("annotationPointcut() && (protectedMethod() || publicMethod())")
public Object test(){ System.out.println("Should not print private"); }

我读过有关使用 ! (不是)但无法让它工作。 有点像

@Pointcut("!execution(private * *(..))"

但是没有让它工作。

我在 aspectJ 中找不到默认类修饰符的修饰符名称,是我错过了它还是我需要尝试使用 !不以某种方式登录?

问候正在学习 aspectJ 的新开发者

最佳答案

试试这个来捕获所有非私有(private)方法。

@Pointcut("execution(!private * *(..))")

关于java - Aspectj 默认构造函数切入点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808264/

相关文章:

java - 如何通过Spring框架中的 Controller 使用查询字符串将参数发送到jsp页面?

java - 当 HttpStatus::is4xxClientError 发生时,Webflux Webclient 记录 "Failed to release a message"

java - "NOT IN"比 <> 慢很多吗?

java - 如何使用 MyBatis 注解在单个查询中插入多个值?

java - 为什么 pointcut.matches(String.class) 返回 "true"

spring - 混合Spring AOP和aspectj编译器?

java - 在重载原始类型或使用 Number 对象引用之间进行选择

java - 带注解的依赖注入(inject)

java - 如何强制 Java 子类定义注解?

java - ApsectJ 在添加 @Transactional 注释时抛出异常