Spring AOPを使用してBeanではないクラスのアスペクトを作成するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2470014

  •  20-09-2019
  •  | 
  •  

質問

私は Spring AOP (つまり、 ProxyFactoryBean) 使用されている。

特定のクラスのメソッドの周りにアスペクトを追加する必要があります。このクラスは ない ただし豆。AspecjJ のポイントカット式は次のようになります。 execution(* xyz.package.Class.method())

私が作成したのは、 MethodInterceptor そして AspectJExpressionPointcut, 、しかし、これら 2 つをどのように連携させるかはわかりません。

編集:
このクラスのソース コードはありません。これはサードパーティのライブラリです。このクラスのインスタンスは、ソース コードでも、Bean としての Spring 構成でも、私によって作成されたものではありません。これはライブラリによって内部的に使用されます。

助けていただければ幸いです。

役に立ちましたか?

解決

説明したように、AspectJ を完全にサポートしてロード時ウィービングを使用できます。 ここ, 、アドバイスされているクラスのソースへのアクセスも、そのインスタンス化の制御も必要ありません(ただし、 <context:load-time-weaver /> を使用した織り手自身の存在 -javaagent:... または 他の方法).

他のヒント

試す @Configurable. 。で説明されています このドキュメント.

@Configurable アノテーションは、クラスを Spring 駆動構成の対象としてマークします。

(必要です <context:load-time-weaver />)

アップデートサードパーティコンポーネントを Bean にするには、次のようにリストします。 applicationContext.xml として <bean class=".." /> (必要ありません @Configurable それと)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top