Java 在使用Aspectj时,我可以在args中使用自己的对象吗?
我是AspectJ新手,我尝试过这样做:Java 在使用Aspectj时,我可以在args中使用自己的对象吗?,java,spring,aspectj,args,pointcut,Java,Spring,Aspectj,Args,Pointcut,我是AspectJ新手,我尝试过这样做: public class MyDBDAO { public boolean update(MyObject myObject) {} } 和方面: @Aspect @Component public class AspectJClass { @Pointcut("execution(* com.myclass.MyDBDAO.update()) && args(myObject)") public void upd
public class MyDBDAO {
public boolean update(MyObject myObject) {}
}
和方面:
@Aspect
@Component
public class AspectJClass {
@Pointcut("execution(* com.myclass.MyDBDAO.update()) && args(myObject)")
public void update(MyObject myObject) {}
}
我应该只使用绝对式吗?
有什么办法可以解决这个问题吗?你试过吗
@Pointcut("execution(void com.myclass.MyDBDAO.update(MyObject)) && args(myObject)")
public void update(MyObject myObject) {}
如果要对类中的所有方法进行poincut,可以执行以下操作:
@Pointcut("this(com.myclass.MyDBDAO)")
public void isMyDBDAO() {}
你试过这个吗
@Pointcut("execution(void com.myclass.MyDBDAO.update(MyObject)) && args(myObject)")
public void update(MyObject myObject) {}
如果要对类中的所有方法进行poincut,可以执行以下操作:
@Pointcut("this(com.myclass.MyDBDAO)")
public void isMyDBDAO() {}
谢谢你的回答!我试了第一个。但我得到了这个信息。原因:java.lang.IllegalArgumentException:警告与此类型名称不匹配:org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:301)org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:195)上的MyObject[Xlint:InvalidabSolutionPename]atI刚刚仔细阅读了您的异常,您需要在切入点内指定类MyObject的完整路径,例如com.myclass.MyObject。您没有发布您的建议,但请注意,建议此切入点的建议也必须将MyObject作为参数谢谢!!我终于解决了这个问题。我这样写切入点@切入点(“执行(void com.myclass.MyDBDAO.update(com.model.MyObject))&&args(MyObject)”)公共void更新(MyObject MyObject){}答案如下!我试了第一个。但我得到了这个信息。原因:java.lang.IllegalArgumentException:警告与此类型名称不匹配:org.aspectj.weaver.tools.PointcutParser.parsePointcutExpression(PointcutParser.java:301)org.springframework.aop.aspectj.AspectJExpressionPointcut.buildPointcutExpression(AspectJExpressionPointcut.java:195)上的MyObject[Xlint:InvalidabSolutionPename]atI刚刚仔细阅读了您的异常,您需要在切入点内指定类MyObject的完整路径,例如com.myclass.MyObject。您没有发布您的建议,但请注意,建议此切入点的建议也必须将MyObject作为参数谢谢!!我终于解决了这个问题。我这样写切入点@切入点(“execution(void com.myclass.MyDBDAO.update(com.model.MyObject))&&args(MyObject)”)public void update(MyObject MyObject){}你到底想做什么?我想在插入DB之前验证aspect类中的参数。你到底想做什么?我想在插入DB之前验证aspect类中的参数。