Java 为什么下面的代码给了我一个“;“建议不匹配”;
我正在努力学习AspectJ,到目前为止,我已经很好地习惯了这些概念。所以在这里,我试图编写方面类来验证一个对象。但是下面的代码给了我Java 为什么下面的代码给了我一个“;“建议不匹配”;,java,aop,aspectj,Java,Aop,Aspectj,我正在努力学习AspectJ,到目前为止,我已经很好地习惯了这些概念。所以在这里,我试图编写方面类来验证一个对象。但是下面的代码给了我advicednotmatch的东西 before(com.message.pojo.Entity entity) : call(*public com.message.helper.Processor.process(com.message.pojo.Entity)) && args(entity) &&
advicednotmatch
的东西
before(com.message.pojo.Entity entity) : call(*public com.message.helper.Processor.process(com.message.pojo.Entity))
&& args(entity)
&& target(com.message.helper.MessageProcessor){
ValidationUtil validation = new ValidationUtil();
validation.validate(entity);
}
现在我检查的所有限定名都是正确的。请检查我的java项目结构的屏幕截图
[切入点有一点语法问题:与其使用
call(*public
),不如使用call(public*
,然后它就可以工作了
顺便说一句,您还可以使用本机AspectJ语法的导入来替换完全限定的类名。FQDN仅在基于注释的@AspectJ语法中是必需的。假设我们在屏幕截图中讨论的是validationspect
,对于同一个包中的两个类,您甚至不需要任何导入。请这样尝试:
package com.message.helper;
导入com.message.pojo.Entity;
公共方面验证方面{
在(实体)之前:
调用(公共*处理器进程(实体))&&
args(实体)&&
目标(消息处理器)
{
ValidationUtil validation=新的ValidationUtil();
验证。验证(实体);
}
}