我试图为camel处理器设置aspectj,但它不起作用。我的切入点如下:
@Around("execution(* org.apache.camel.processor.UnmarshalProcessor.*(..))")
是否有可能为驼峰处理器做方面?如果是,请帮助。
答案 0 :(得分:1)
是的,如果您在编译时编织方案中将库放在 inpath 中,则可以创建第三方类文件的修改版本并在运行时使用它们。
在加载时编织方案中,如果在 Camel 类之前加载编织代理,您也可以动态地执行此操作(通常应该是这种情况)。
作为解决方法,您可以将切入点类型从execution()
更改为call()
,在您自己的代码中拦截调用者,而不是第三方库中的被调用者。
所以你至少有三个选项,所有选项都适用于AspectJ(不是像Spring AOP这样的“AOP lite”变体)。