作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图捕获重写 spring 的 validate 方法后出现的所有错误。
我收到以下错误
切入点格式不正确:在字符位置 135 处需要 ')'
我尝试了很多组合,例如在前后添加“)”并删除,但仍然遇到相同的错误。我正在学习 Spring,所以不确定这是否正是实现 aop 的方法。谁能告诉我哪里错了或者纠正我
这是实现验证方法的类
package com.myapplication.validations
public class MyValidate implements Validator{{
public boolean supports(Class<?> clazz) {
return MyValidate.class.equals(clazz);
}
public void validate(Object target, MyApplicationErrors errors) {
//all validations
}
}
现在在我的 spring application-context.xml 中编写以下 aop
<aop:aspectj-autoproxy />
<bean id="captureErrors"
class="com.myapplication.aop.CaptureAllErrors" />
<aop:aspect ref="captureErrors">
<aop:pointcut id="magicallyCaptureErrors"
expression="execution(* com.myapplication.validations.MyValidate.validate(Object, com.myapplication.allerrors.MyApplicationErrors )) and args(Object target, com.myapplication.allerrors.MyApplicationErrors errors)" />
<aop:after-returning pointcut-ref="magicallyCaptureErrors" method="getAllErrors"/>
</aop:aspect>
</aop:config>
我的捕获所有错误类如下
package com.myapplication.aop
@Aspect
@Component
public class CaptureAllErrors {
public void getAllErrors(Object target, com.myapplication.allerrors.MyApplicationErrors errors){
log.info(errors.toString());
}
}
最佳答案
表达式的第 135 个字符从这里开始:
and args(Object target
^
args()
切入点应列出参数的类型,而不是类型和名称。所以试试这个:
and args(Object, MyApplicationErrors)
还值得指出的是,整个 args()
表达式是多余的,因为 execution()
切入点也指定了方法参数所需的签名。
关于java - Spring AOP切点错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975703/
我需要编写一个Single切入点来拦截所有类的构造函数。实际需要是拦截除 init() 和构造函数之外没有其他方法被调用的所有 bean。对于 init 来说,它是直接的。但是,由于构造函数名称随着类
我是一名优秀的程序员,十分优秀!