これはかなり奇妙ですが、私は本当にこれが必要です...私はこのコードを持っています
@Aspect
public class SomeAspect {
SomeObject someObject = null;
@Pointcut("something")
public void somePoint() {
}
@Before("somePoint()")
public void beforeSomePoint() {
}
@After("somePoint()")
public void afterSomePoint() {
someObject.hello();
}
public void waitForEvent(SomeEvent event) {
someObject = event.getObject();
}
}
つまり、基本的にポイントカットと 2 つのアドバイスがあります。アプリケーションで発生するイベントをリッスンするメソッドがあります。興味のあるイベントからオブジェクトを取得し、メソッドsomeObject
で変数を初期化しますwaitForEvent
。これは機能し、メソッドsomeObject
に正しく渡されると確信しています。waitForEvent
ポイントは、アドバイスメソッドの本体で取得したオブジェクトを操作する必要があるというsomeObject.hello()
ことですが、アドバイスの実際の実行前にイベントが発生することを知っていても、まだnullのようですafterSomePoint
。
Spring やその他の関連するフレームワークは使用していません。純粋な Java + AspectJ、注釈付きバージョンを使用しています。
オブジェクトを外部からアドバイスに渡すにはどうすればよいですか?
本当にありがとうございました