クラス AdvisedSupport
- 実装されているすべてのインターフェース:
SerializableSE、Advised、TargetClassAware
- 既知の直属サブクラス
ProxyCreatorSupport
これら自体は AOP プロキシではありませんが、このクラスのサブクラスは通常、AOP プロキシインスタンスが直接取得されるファクトリです。
このクラスは、アドバイスとアドバイザのハウスキーピングのサブクラスを解放しますが、実際には、サブクラスによって提供されるプロキシ作成メソッドを実装していません。
このクラスは直列化可能です。サブクラスである必要はありません。
このクラスは、プロキシのスナップショットを保持するために使用されます。
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターコンストラクター説明JavaBean として使用するための引数なしのコンストラクター。AdvisedSupport(ClassSE<?>... interfaces) 指定されたパラメーターを使用してAdvisedSupportインスタンスを作成します。メソッドのサマリー
修飾子と型メソッド説明voidアドバイスが IntroductionInfo を実装しない限り、この方法で導入を追加することはできません。void与えられた AOP アライアンスアドバイスをアドバイス(インターセプター)チェーンの末尾に追加します。voidaddAdvisor(int pos, Advisor advisor) チェーンの指定された位置に Advisor を追加します。voidaddAdvisor(Advisor advisor) アドバイザーチェーンの最後にアドバイザーを追加します。voidaddAdvisors(CollectionSE<Advisor> advisors) 指定されたすべてのアドバイザをこのプロキシ構成に追加します。voidaddAdvisors(Advisor... advisors) 指定されたすべてのアドバイザをこのプロキシ構成に追加します。voidaddInterface(ClassSE<?> intf) 新しいプロキシインターフェースを追加します。protected voidアドバイスが変更されたときに呼び出されます。booleanadviceIncluded(Advice advice) 与えられたアドバイスは、このプロキシ構成内のアドバイザーに含まれていますか?protected voidno-arg コンストラクターによって作成された新しいインスタンスでこのメソッドを呼び出して、指定されたオブジェクトから構成の独立したコピーを作成します。protected voidcopyConfigurationFrom(AdvisedSupport other, TargetSource targetSource, ListSE<Advisor> advisors) 指定されたAdvisedSupportオブジェクトから AOP 構成をコピーしますが、新しいTargetSourceと指定されたインターセプターチェーンの置換を許可します。intcountAdvicesOfType(ClassSE<?> adviceClass) 指定されたクラスのアドバイスを数えます。使用するアドバイザチェーンファクトリを返します(決してnullではありません)。intこのプロキシに適用するアドバイザーの数を返します。final Advisor[]このプロキシに適用するアドバイザを返します。getInterceptorsAndDynamicInterceptionAdvice(MethodSE method, ClassSE<?> targetClass) この構成に基づいて、指定されたメソッドのMethodInterceptorオブジェクトのリストを決定します。ClassSE<?>[]AOP プロキシによってプロキシされたインターフェースを返します。ClassSE<?>実装オブジェクト(通常、プロキシ構成または実際のプロキシ)の背後にあるターゲットクラスを返します。このAdvisedオブジェクトによって使用されるTargetSourceを返します。int指定された AOP アライアンスアドバイスの(0 からの)インデックスを返します。そのようなアドバイスがこのプロキシのアドバイスでない場合は -1 を返します。int指定されたアドバイザの(0 からの)インデックスを返します。そのようなアドバイザがこのプロキシに適用されない場合は -1 を返します。booleanisInterfaceProxied(ClassSE<?> intf) 指定されたインターフェースがプロキシされているかどうかを確認します。booleanこのプロキシ構成が事前にフィルタリングされているため、適用可能なアドバイザのみが含まれるかどうかを返します(このプロキシのターゲットクラスに一致します)。booleanremoveAdvice(Advice advice) 指定されたアドバイスを含むアドバイザを削除します。voidremoveAdvisor(int index) 指定されたインデックスにあるアドバイザーを削除します。booleanremoveAdvisor(Advisor advisor) 指定されたアドバイザーを削除します。booleanremoveInterface(ClassSE<?> intf) プロキシされたインターフェースを削除します。booleanreplaceAdvisor(Advisor a, Advisor b) 指定されたアドバイザーを置き換えます。voidsetAdvisorChainFactory(AdvisorChainFactory advisorChainFactory) 使用する advisor チェーンファクトリを設定します。voidsetInterfaces(ClassSE<?>... interfaces) プロキシするインターフェースを設定します。voidsetPreFiltered(boolean preFiltered) このプロキシ構成が事前にフィルタリングされるかどうかを設定して、適用可能なアドバイザのみが含まれるようにします(このプロキシのターゲットクラスに一致します)。void指定されたオブジェクトをターゲットとして設定します。voidsetTargetClass(ClassSE<?> targetClass) ターゲットクラスをプロキシに設定し、プロキシを特定のクラスにキャストできることを示します。voidsetTargetSource(TargetSource targetSource) このAdvisedオブジェクトで使用されるTargetSourceを変更します。toString()は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。toString()デバッグ / 診断用。クラス org.springframework.aop.framework.ProxyConfig から継承されたメソッド
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClassクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSEインターフェース org.springframework.aop.framework.Advised から継承されたメソッド
isExposeProxy, isFrozen, isProxyTargetClass, setExposeProxy
フィールドの詳細
EMPTY_TARGET_SOURCE
ターゲットが存在せず、動作がアドバイザによって提供される場合の正規の TargetSource。
コンストラクターの詳細
AdvisedSupport
public AdvisedSupport()JavaBean として使用するための引数なしのコンストラクター。AdvisedSupport
指定されたパラメーターを使用してAdvisedSupportインスタンスを作成します。- パラメーター:
interfaces- プロキシされたインターフェース
メソッドの詳細
setTarget
指定されたオブジェクトをターゲットとして設定します。オブジェクトの SingletonTargetSource を作成します。
setTargetSource
インターフェースからコピーされた説明:Advised- 次で指定:
- インターフェース
AdvisedのsetTargetSource - パラメーター:
targetSource- 使用する新しい TargetSource
getTargetSource
インターフェースからコピーされた説明:AdvisedこのAdvisedオブジェクトによって使用されるTargetSourceを返します。- 次で指定:
- インターフェース
AdvisedのgetTargetSource
setTargetClass
ターゲットクラスをプロキシに設定し、プロキシを特定のクラスにキャストできることを示します。内部的には、指定されたターゲットクラスの
EmptyTargetSourceが使用されます。必要なプロキシの種類は、実際のプロキシの作成時に決定されます。これは、完全な機能を備えた TargetSource を使用せずに、ターゲットクラス (インターフェースまたは具象クラス) に基づくプロキシが必要な場合に、"targetSource" または「ターゲット」を設定する代わりに使用します。
getTargetClass
インターフェースからコピーされた説明:TargetClassAware実装オブジェクト(通常、プロキシ構成または実際のプロキシ)の背後にあるターゲットクラスを返します。- 次で指定:
- インターフェース
TargetClassAwareのgetTargetClass - 戻り値:
- ターゲットクラス、または不明の場合は
null
setPreFiltered
public void setPreFiltered(boolean preFiltered) インターフェースからコピーされた説明:Advisedこのプロキシ構成が事前にフィルタリングされるかどうかを設定して、適用可能なアドバイザのみが含まれるようにします(このプロキシのターゲットクラスに一致します)。デフォルトは "false" です。アドバイザがすでに事前にフィルターされている場合は、これを "true" に設定します。つまり、プロキシ呼び出し用の実際のアドバイザチェーンを構築するときに ClassFilter チェックをスキップできます。
- 次で指定:
- インターフェース
AdvisedのsetPreFiltered - 関連事項:
isPreFiltered
public boolean isPreFiltered()インターフェースからコピーされた説明:Advisedこのプロキシ構成が事前にフィルタリングされているため、適用可能なアドバイザのみが含まれるかどうかを返します(このプロキシのターゲットクラスに一致します)。- 次で指定:
- インターフェース
AdvisedのisPreFiltered
setAdvisorChainFactory
使用する advisor チェーンファクトリを設定します。デフォルトは
DefaultAdvisorChainFactoryです。getAdvisorChainFactory
使用するアドバイザチェーンファクトリを返します(決してnullではありません)。setInterfaces
プロキシするインターフェースを設定します。addInterface
新しいプロキシインターフェースを追加します。- パラメーター:
intf- プロキシへの追加インターフェース
removeInterface
プロキシされたインターフェースを削除します。指定されたインターフェースがプロキシされていない場合は何もしません。
- パラメーター:
intf- プロキシから削除するインターフェース- 戻り値:
true(インターフェースが削除された場合)。false(インターフェースが見つからなかったため削除できなかった場合)
getProxiedInterfaces
インターフェースからコピーされた説明:AdvisedAOP プロキシによってプロキシされたインターフェースを返します。プロキシされる可能性のあるターゲットクラスは含まれません。
- 次で指定:
- インターフェース
AdvisedのgetProxiedInterfaces
isInterfaceProxied
インターフェースからコピーされた説明:Advised指定されたインターフェースがプロキシされているかどうかを確認します。- 次で指定:
- インターフェース
AdvisedのisInterfaceProxied - パラメーター:
intf- チェックするインターフェース
getAdvisors
インターフェースからコピーされた説明:Advisedこのプロキシに適用するアドバイザを返します。- 次で指定:
- インターフェース
AdvisedのgetAdvisors - 戻り値:
- このプロキシに適用されるアドバイザのリスト (非
null)
getAdvisorCount
public int getAdvisorCount()インターフェースからコピーされた説明:Advisedこのプロキシに適用するアドバイザーの数を返します。デフォルトの実装は
getAdvisors().lengthに委譲します。- 次で指定:
- インターフェース
AdvisedのgetAdvisorCount
addAdvisor
インターフェースからコピーされた説明:Advisedアドバイザーチェーンの最後にアドバイザーを追加します。Advisor は
IntroductionAdvisorである場合があり、プロキシが次に関連するファクトリから取得されたときに新しいインターフェースが利用可能になります。- 次で指定:
- インターフェース
AdvisedのaddAdvisor - パラメーター:
advisor- チェーンの最後に追加するアドバイザー
addAdvisor
インターフェースからコピーされた説明:Advisedチェーンの指定された位置に Advisor を追加します。- 次で指定:
- インターフェース
AdvisedのaddAdvisor - パラメーター:
pos- チェーン内の位置(0 は先頭)。有効でなければなりません。advisor- チェーンの指定された位置に追加するアドバイザ- 例外:
AopConfigException- 無効なアドバイスの場合
removeAdvisor
インターフェースからコピーされた説明:Advised指定されたアドバイザーを削除します。- 次で指定:
- インターフェース
AdvisedのremoveAdvisor - パラメーター:
advisor- 削除するアドバイザー- 戻り値:
true(アドバイザーが削除された場合)。false(アドバイザーが見つからなかったため削除できなかった場合)
removeAdvisor
インターフェースからコピーされた説明:Advised指定されたインデックスにあるアドバイザーを削除します。- 次で指定:
- インターフェース
AdvisedのremoveAdvisor - パラメーター:
index- 削除するアドバイザーのインデックス- 例外:
AopConfigException- インデックスが無効な場合
indexOf
インターフェースからコピーされた説明:Advised指定されたアドバイザの(0 からの)インデックスを返します。そのようなアドバイザがこのプロキシに適用されない場合は -1 を返します。このメソッドの戻り値を使用して、advisors 配列にインデックスを付けることができます。
replaceAdvisor
インターフェースからコピーされた説明:Advised指定されたアドバイザーを置き換えます。注意 : advisor が
IntroductionAdvisorであり、代替が異なるインターフェースを実装しているか、実装している場合、プロキシを再取得する必要があります。そうしないと、古いインターフェースがサポートされず、新しいインターフェースは実装されません。- 次で指定:
- インターフェース
AdvisedのreplaceAdvisor - パラメーター:
a- 交換するアドバイザーb- それを置き換えるアドバイザー- 戻り値:
- 交換されたかどうか。advisor のリストに advisor が見つからなかった場合、このメソッドは
falseを返し、何もしません。 - 例外:
AopConfigException- 無効なアドバイスの場合
addAdvisors
指定されたすべてのアドバイザをこのプロキシ構成に追加します。- パラメーター:
advisors- 登録するアドバイザー
addAdvisors
指定されたすべてのアドバイザをこのプロキシ構成に追加します。- パラメーター:
advisors- 登録するアドバイザー
getAdvisorsInternal
addAdvice
インターフェースからコピーされた説明:Advised与えられた AOP アライアンスアドバイスをアドバイス(インターセプター)チェーンの末尾に追加します。これは、常に適用されるポイントカットで DefaultPointcutAdvisor にラップされ、このラップされた形式で
getAdvisors()メソッドから返されます。与えられたアドバイスは、
toString()メソッドを含め、プロキシ上のすべての呼び出しに適用されることに注意してください! 適切なアドバイス実装を使用するか、適切なポイントカットを指定して、より狭いメソッドセットに適用します。- 次で指定:
- インターフェース
AdvisedのaddAdvice - パラメーター:
advice- チェーンの末尾に追加するアドバイス- 例外:
AopConfigException- 無効なアドバイスの場合- 関連事項:
addAdvice
アドバイスが IntroductionInfo を実装しない限り、この方法で導入を追加することはできません。- 次で指定:
- インターフェース
AdvisedのaddAdvice - パラメーター:
pos- 0 からのインデックス (頭)advice- アドバイスチェーンの指定された位置に追加するアドバイス- 例外:
AopConfigException- 無効なアドバイスの場合
removeAdvice
インターフェースからコピーされた説明:Advised指定されたアドバイスを含むアドバイザを削除します。- 次で指定:
- インターフェース
AdvisedのremoveAdvice - パラメーター:
advice- 削除するアドバイス- 戻り値:
- アドバイスの
trueが見つかり、削除されました。falseそのようなアドバイスがなかった場合 - 例外:
AopConfigException
indexOf
インターフェースからコピーされた説明:Advised指定された AOP アライアンスアドバイスの(0 からの)インデックスを返します。そのようなアドバイスがこのプロキシのアドバイスでない場合は -1 を返します。このメソッドの戻り値を使用して、advisors 配列にインデックスを付けることができます。
adviceIncluded
与えられたアドバイスは、このプロキシ構成内のアドバイザーに含まれていますか?- パラメーター:
advice- 含まれていることを確認するためのアドバイス- 戻り値:
- このアドバイスインスタンスが含まれているかどうか
countAdvicesOfType
指定されたクラスのアドバイスを数えます。- パラメーター:
adviceClass- チェックするアドバイスクラス- 戻り値:
- このクラスまたはサブクラスのインターセプターの数
getInterceptorsAndDynamicInterceptionAdvice
public ListSE<ObjectSE> getInterceptorsAndDynamicInterceptionAdvice(MethodSE method, @Nullable ClassSE<?> targetClass) この構成に基づいて、指定されたメソッドのMethodInterceptorオブジェクトのリストを決定します。- パラメーター:
method- プロキシ方式targetClass- ターゲットクラス- 戻り値:
- MethodInterceptors のリスト (InterceptorAndDynamicMethodMatchers を含むこともあります)
adviceChanged
protected void adviceChanged()アドバイスが変更されたときに呼び出されます。copyConfigurationFrom
no-arg コンストラクターによって作成された新しいインスタンスでこのメソッドを呼び出して、指定されたオブジェクトから構成の独立したコピーを作成します。- パラメーター:
other- 構成をコピーする AdvisedSupport オブジェクト
copyConfigurationFrom
protected void copyConfigurationFrom(AdvisedSupport other, TargetSource targetSource, ListSE<Advisor> advisors) 指定されたAdvisedSupportオブジェクトから AOP 構成をコピーしますが、新しいTargetSourceと指定されたインターセプターチェーンの置換を許可します。- パラメーター:
other- プロキシ設定を取得するAdvisedSupportオブジェクトtargetSource- 新しい TargetSourceadvisors- チェーンのアドバイザー
toProxyConfigString
インターフェースからコピーされた説明:AdvisedtoString()は通常ターゲットに委譲されるため、これは AOP プロキシと同等のものを返します。- 次で指定:
- インターフェース
AdvisedのtoProxyConfigString - 戻り値:
- プロキシ構成の文字列説明
toString
デバッグ / 診断用。- オーバーライド:
- クラス
ProxyConfigのtoString