我已创建自定义批注:
@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)")