public class PersistenceExceptionTranslationInterceptor extends ObjectSE implements MethodInterceptor, BeanFactoryAware, InitializingBean
指定された PersistenceExceptionTranslator にデリゲートして、スローされた RuntimeException を Spring の DataAccessException 階層に変換します(適切な場合)。問題の RuntimeException がターゲットメソッドで宣言されている場合、常にそのままの状態で伝達されます(変換は適用されません)。
PersistenceExceptionTranslator| コンストラクターと説明 |
|---|
PersistenceExceptionTranslationInterceptor() 新しい PersistenceExceptionTranslationInterceptor を作成します。 |
PersistenceExceptionTranslationInterceptor(ListableBeanFactory beanFactory) 指定された BeanFactory で PersistenceExceptionTranslators を自動検出して、新しい PersistenceExceptionTranslationInterceptor を作成します。 |
PersistenceExceptionTranslationInterceptor(PersistenceExceptionTranslator pet) 指定された PersistenceExceptionTranslator の新しい PersistenceExceptionTranslationInterceptor を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() |
protected PersistenceExceptionTranslator | detectPersistenceExceptionTranslators(ListableBeanFactory bf) 指定された BeanFactory のすべての PersistenceExceptionTranslators を検出します。 |
ObjectSE | invoke(MethodInvocation mi) このメソッドを実装して、呼び出しの前後に追加の処理を実行します。 |
void | setAlwaysTranslate(boolean alwaysTranslate) 例外を常に変換するか( "true" )、または宣言時に生の例外をスローするかどうかを指定します。 |
void | setBeanFactory(BeanFactory beanFactory) 所有ファクトリを Bean インスタンスに提供するコールバック。 |
void | setPersistenceExceptionTranslator(PersistenceExceptionTranslator pet) 使用する PersistenceExceptionTranslator を指定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic PersistenceExceptionTranslationInterceptor()
public PersistenceExceptionTranslationInterceptor(PersistenceExceptionTranslator pet)
pet - 使用する PersistenceExceptionTranslatorpublic PersistenceExceptionTranslationInterceptor(ListableBeanFactory beanFactory)
beanFactory - ListableBeanFactory からすべての PersistenceExceptionTranslators を取得する public void setPersistenceExceptionTranslator(PersistenceExceptionTranslator pet)
デフォルトでは、チェーンで使用して、BeanFactory を含むすべての PersistenceExceptionTranslators を自動検出します。
public void setAlwaysTranslate(boolean alwaysTranslate)
デフォルトは "false" です。元のメソッドシグネチャーとは関係なく、適用可能な例外を常に変換するには、このフラグを "true" に切り替えます。
元のメソッドは特定の例外を宣言する必要がないことに注意してください。throws Exception を含め、どの基本クラスでも同じことができます。元のメソッドが互換性のある例外を明示的に宣言している限り、生の例外が再スローされます。いかなる場合でも生の例外をスローしないようにするには、このフラグを "true" に切り替えます。
public void setBeanFactory(BeanFactory beanFactory) throws BeansException
BeanFactoryAware 通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。
BeanFactoryAware の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。BeansException - 初期化エラーの場合 BeanInitializationExceptionpublic void afterPropertiesSet()
InitializingBeanBeanFactoryAware、ApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean の afterPropertiesSet public ObjectSE invoke(MethodInvocation mi) throws ThrowableSE
MethodInterceptorJoinpoint.proceed() を呼び出すようにします。MethodInterceptor の invoke mi - メソッド呼び出しジョインポイント Joinpoint.proceed() の呼び出しの結果。インターセプターによってインターセプトされる可能性があります ThrowableSE - インターセプターまたはターゲットオブジェクトが例外をスローする場合 protected PersistenceExceptionTranslator detectPersistenceExceptionTranslators(ListableBeanFactory bf)
bf - から PersistenceExceptionTranslators を取得する ListableBeanFactoryChainedPersistenceExceptionTranslator