我可以为Camel Component(marshal和unMarshal)设置aspectj吗?

时间:2014-12-29 11:34:43

标签: apache-camel marshalling aspectj execution unmarshalling

我试图为camel处理器设置aspectj,但它不起作用。我的切入点如下:

@Around("execution(* org.apache.camel.processor.UnmarshalProcessor.*(..))")

是否有可能为驼峰处理器做方面?如果是,请帮助。

1 个答案:

答案 0 :(得分:1)

是的,如果您在编译时编织方案中将库放在 inpath 中,则可以创建第三方类文件的修改版本并在运行时使用它们。

在加载时编织方案中,如果在 Camel 类之前加载编织代理,您也可以动态地执行此操作(通常应该是这种情况)。

作为解决方法,您可以将切入点类型从execution()更改为call(),在您自己的代码中拦截调用者,而不是第三方库中的被调用者。

所以你至少有三个选项,所有选项都适用于AspectJ(不是像Spring AOP这样的“AOP lite”变体)。