4

Mule フローの周りにアスペクトをラップしようとしています。@Aroundつまり、何かが Mule フローに入ったときにトリガーされる を定義して、独自の統計収集を実行できるようにしたいと考えています。ラップアラウンドする簡単な「フロー」クラスは見つかりませんでしたが、それMessageReceiverが良いクラスであるか、少なくともこのクラスの実装であることがわかりました。

ただし、私は AspectJ の専門家ではないため、これを機能させることができません。私は@Aspectこのようなメソッドを持つクラスを持っています。

@Around("execution(public * org.mule.api.transport.MessageReceiver+.*(..))")
public Object addMonitor(ProceedingJoinPoint pjp) throws Throwable {
    System.out.println("Before");
    Object object = pjp.proceed();
    System.out.println("After");
    return object;
}

HttpMessageReceiverしかし、メソッドが呼び出されたときに印刷する前/後の文字列を取得できません。フローにデバッグ ポイントを設定しorg.mule.transport.AbstractMessageReceiver.routeMessage(MuleMessage message)、それが呼び出されていることを確認できます。これは の実装ですMessageReceiverが、アスペクトへの呼び出しは見られません。

Mule でこの種のアスペクトを実行することは可能ですか?

//編集: 前述のとおり、私は AspectJ と AOP を初めて使用するので、@Aspectクラスを処理するために Mule でスプリングを使用していると言えます。これがSpringで処理されたBeanで機能する例がありますが、Springで管理されていない通常のPOJOでは機能しません。私のSpring構成は次のようになります:

<spring:beans>
    <context:component-scan base-package="com.example" />
    <context:annotation-config />
    <aop:aspectj-autoproxy />
</spring:beans>
4

1 に答える 1