public interface Advised extends TargetClassAware
Spring から取得した AOP プロキシをこのインターフェースにキャストして、AOP アドバイスを操作できます。
AdvisedSupport
修飾子と型 | メソッドと説明 |
---|---|
void | addAdvice(Advice advice) 与えられた AOP アライアンスアドバイスをアドバイス(インターセプター)チェーンの末尾に追加します。 |
void | addAdvice(int pos, Advice advice) 指定された AOP アライアンスアドバイスをアドバイスチェーンの指定された位置に追加します。 |
void | addAdvisor(Advisor advisor) アドバイザーチェーンの最後にアドバイザーを追加します。 |
void | addAdvisor(int pos, Advisor advisor) チェーンの指定された位置に Advisor を追加します。 |
default int | getAdvisorCount() このプロキシに適用するアドバイザーの数を返します。 |
Advisor[] | getAdvisors() このプロキシに適用するアドバイザを返します。 |
ClassSE<?>[] | getProxiedInterfaces() AOP プロキシによってプロキシされたインターフェースを返します。 |
TargetSource | getTargetSource() この Advised オブジェクトによって使用される TargetSource を返します。 |
int | indexOf(Advice advice) 指定された AOP アライアンスアドバイスの(0 からの)インデックスを返します。そのようなアドバイスがこのプロキシのアドバイスでない場合は -1 を返します。 |
int | indexOf(Advisor advisor) 指定されたアドバイザの(0 からの)インデックスを返します。そのようなアドバイザがこのプロキシに適用されない場合は -1 を返します。 |
boolean | isExposeProxy() ファクトリがプロキシを ThreadLocal SE として公開する必要があるかどうかを返します。 |
boolean | isFrozen() 推奨構成が凍結されているかどうかを返します。この場合、アドバイスの変更はできません。 |
boolean | isInterfaceProxied(ClassSE<?> intf) 指定されたインターフェースがプロキシされているかどうかを確認します。 |
boolean | isPreFiltered() このプロキシ構成が事前にフィルタリングされているため、適用可能なアドバイザのみが含まれるかどうかを返します(このプロキシのターゲットクラスに一致します)。 |
boolean | isProxyTargetClass() 指定されたインターフェースではなく、完全なターゲットクラスをプロキシしていますか? |
boolean | removeAdvice(Advice advice) 指定されたアドバイスを含むアドバイザを削除します。 |
boolean | removeAdvisor(Advisor advisor) 指定されたアドバイザーを削除します。 |
void | removeAdvisor(int index) 指定されたインデックスにあるアドバイザーを削除します。 |
boolean | replaceAdvisor(Advisor a, Advisor b) 指定されたアドバイザーを置き換えます。 |
void | setExposeProxy(boolean exposeProxy) AopContext クラスを介して取得するために、プロキシを AOP フレームワークによって ThreadLocal SE として公開するかどうかを設定します。 |
void | setPreFiltered(boolean preFiltered) このプロキシ構成が事前にフィルタリングされるかどうかを設定して、適用可能なアドバイザのみが含まれるようにします(このプロキシのターゲットクラスに一致します)。 |
void | setTargetSource(TargetSource targetSource) この Advised オブジェクトで使用される TargetSource を変更します。 |
StringSE | toProxyConfigString() toString() は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。 |
getTargetClass
boolean isFrozen()
boolean isProxyTargetClass()
ClassSE<?>[] getProxiedInterfaces()
プロキシされる可能性のあるターゲットクラスは含まれません。
boolean isInterfaceProxied(ClassSE<?> intf)
intf
- チェックするインターフェース void setTargetSource(TargetSource targetSource)
targetSource
- 使用する新しい TargetSourceTargetSource getTargetSource()
Advised
オブジェクトによって使用される TargetSource
を返します。void setExposeProxy(boolean exposeProxy)
AopContext
クラスを介して取得するために、プロキシを AOP フレームワークによって ThreadLocal
SE として公開するかどうかを設定します。 アドバイスされたオブジェクトがアドバイスを適用して自身でメソッドを呼び出す必要がある場合は、プロキシを公開する必要がある場合があります。それ以外の場合、アドバイスされたオブジェクトが this
のメソッドを呼び出しても、アドバイスは適用されません。
最適なパフォーマンスを得るには、デフォルトは false
です。
boolean isExposeProxy()
ThreadLocal
SE として公開する必要があるかどうかを返します。 アドバイスされたオブジェクトがアドバイスを適用して自身でメソッドを呼び出す必要がある場合は、プロキシを公開する必要がある場合があります。それ以外の場合、アドバイスされたオブジェクトが this
のメソッドを呼び出しても、アドバイスは適用されません。
プロキシの取得は、getEJBObject()
を呼び出す EJB に似ています。
AopContext
void setPreFiltered(boolean preFiltered)
デフォルトは "false" です。アドバイザがすでに事前にフィルターされている場合は、これを "true" に設定します。つまり、プロキシ呼び出し用の実際のアドバイザチェーンを構築するときに ClassFilter チェックをスキップできます。
ClassFilter
boolean isPreFiltered()
Advisor[] getAdvisors()
null
)default int getAdvisorCount()
デフォルトの実装は getAdvisors().length
に委譲します。
void addAdvisor(Advisor advisor) throws AopConfigException
Advisor は IntroductionAdvisor
である場合があり、プロキシが次に関連するファクトリから取得されたときに新しいインターフェースが利用可能になります。
advisor
- チェーンの最後に追加するアドバイザー AopConfigException
- 無効なアドバイスの場合 void addAdvisor(int pos, Advisor advisor) throws AopConfigException
advisor
- チェーンの指定された位置に追加するアドバイザ pos
- チェーン内の位置(0 は先頭)。有効でなければなりません。AopConfigException
- 無効なアドバイスの場合 boolean removeAdvisor(Advisor advisor)
advisor
- 削除するアドバイザー true
(アドバイザーが削除された場合)。false
(アドバイザーが見つからなかったため削除できなかった場合)void removeAdvisor(int index) throws AopConfigException
index
- 削除するアドバイザーのインデックス AopConfigException
- インデックスが無効な場合 int indexOf(Advisor advisor)
このメソッドの戻り値を使用して、advisors 配列にインデックスを付けることができます。
advisor
- 検索するアドバイザー boolean replaceAdvisor(Advisor a, Advisor b) throws AopConfigException
注意 : advisor が IntroductionAdvisor
であり、代替が異なるインターフェースを実装しているか、実装している場合、プロキシを再取得する必要があります。そうしないと、古いインターフェースがサポートされず、新しいインターフェースは実装されません。
a
- 交換するアドバイザー b
- それを置き換えるアドバイザー false
を返し、何もしません。AopConfigException
- 無効なアドバイスの場合 void addAdvice(Advice advice) throws AopConfigException
これは、常に適用されるポイントカットで DefaultPointcutAdvisor にラップされ、このラップされた形式で getAdvisors()
メソッドから返されます。
与えられたアドバイスは、toString()
メソッドを含め、プロキシ上のすべての呼び出しに適用されることに注意してください! 適切なアドバイス実装を使用するか、適切なポイントカットを指定して、より狭いメソッドセットに適用します。
advice
- チェーンの末尾に追加するアドバイス AopConfigException
- 無効なアドバイスの場合 addAdvice(int, Advice)
, DefaultPointcutAdvisor
void addAdvice(int pos, Advice advice) throws AopConfigException
これは、常に適用されるポイントカットで DefaultPointcutAdvisor
にラップされ、このラップされた形式で getAdvisors()
メソッドから返されます。
メモ: 与えられたアドバイスは、toString()
メソッドであっても、プロキシでのすべての呼び出しに適用されます。適切なアドバイス実装を使用するか、適切なポイントカットを指定して、より狭いメソッドのセットに適用します。
pos
- 0 からのインデックス (頭)advice
- アドバイスチェーンの指定された位置に追加するアドバイス AopConfigException
- 無効なアドバイスの場合 boolean removeAdvice(Advice advice)
advice
- 削除するアドバイス true
が見つかり、削除されました。false
そのようなアドバイスがなかった場合 int indexOf(Advice advice)
このメソッドの戻り値を使用して、advisors 配列にインデックスを付けることができます。
advice
- 検索する AOP アライアンスのアドバイス StringSE toProxyConfigString()
toString()
は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。