我已创建自定义批注:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ValidateBeforeBuild {
}

一个方面是:
@Aspect
@Component
public class AspectForBuildInBuilders {

    private static final Logger LOGGER = LoggerFactory.getLogger(AspectForBuildInBuilders.class);

    @Before("@annotation(validateBeforeBuild )")
    public void validateBusinessModelAdvice(JoinPoint jp, ValidateBeforeBuild validateBeforeBuild ) throws Throwable {
        LOGGER.info("Executing class: {}", jp);
    }
}

我有一个标有上面注释的build()。当我试图调用build()时,我没有从validateBusinessModelAdvice()获取日志消息。我在一个配置类中也有@EnableAspectJAutoProxy。我遗漏了什么吗?还需要什么信息吗?

最佳答案

您将注释定义为ValidateBeforeBuild并且在方面中指定了validateBeforeBuild(注意注释中的上部V
尝试改变

@Before("@annotation(validateBeforeBuild)")

对于
@Before("@annotation(ValidateBeforeBuild)")

07-24 13:47