Spring AOP:不使用自定义注释的方法执行建议

问题描述 投票:3回答:1

我创建了一个自定义注释:

@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。我错过了什么吗?是否还需要更多信息?

java spring spring-boot spring-aop
1个回答
0
投票

您将注释定义为ValidateBeforeBuild,并在您的方面指定了validateBeforeBuild(注意注释中的上部V

尝试改变

@Before("@annotation(validateBeforeBuild)")

对于

@Before("@annotation(ValidateBeforeBuild)")
© www.soinside.com 2019 - 2024. All rights reserved.