public class SimpleServletPostProcessor extends ObjectSE implements DestructionAwareBeanPostProcessor, ServletContextAware, ServletConfigAware
ServletEE インターフェースを実装する Bean に初期化と破棄のコールバックを適用する BeanPostProcessor。Bean インスタンスの初期化後、サーブレットの init メソッドは、サーブレットの Bean 名とそれが実行されている ServletContext を含む ServletConfig で呼び出されます。
Bean インスタンスを破棄する前に、サーブレット destroy が呼び出されます。
このポストプロセッサーはサーブレット初期化パラメーターをサポートしないことに注意してください。サーブレットインターフェースを実装する Bean インスタンスは、他の Spring Bean と同じように、つまりコンストラクター引数または Bean プロパティを介して構成されている必要があります。
プレーンサーブレットコンテナーで、Spring コンテキストで Bean としてサーブレット実装を再利用するには、サーブレット初期化パラメーターを Bean プロパティとして適用する Spring の HttpServletBean 基本クラスから派生し、標準サーブレットと Spring Bean 初期化スタイルの両方をサポートすることを検討してください。
または、Spring の ServletWrappingController でサーブレットをラップすることを検討してください。これは、サーブレットの初期化パラメーターなどを指定できる既存のサーブレットクラスに特に適しています。
Servlet.init(javax.servlet.ServletConfig)EE, Servlet.destroy()EE, SimpleServletHandlerAdapter| コンストラクターと説明 |
|---|
SimpleServletPostProcessor() |
| 修飾子と型 | メソッドと説明 |
|---|---|
ObjectSE | postProcessAfterInitialization(ObjectSE bean, StringSE beanName)Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の後に、指定された新しい Bean インスタンスにこの BeanPostProcessor を適用します。 |
void | postProcessBeforeDestruction(ObjectSE bean, StringSE beanName) 破棄する前に、この BeanPostProcessor を指定の Bean インスタンスに適用します。 |
ObjectSE | postProcessBeforeInitialization(ObjectSE bean, StringSE beanName)Bean 初期化コールバック(InitializingBean の afterPropertiesSet またはカスタム init メソッドなど)の前に、この BeanPostProcessor を指定された新しい Bean インスタンスに適用します。 |
boolean | requiresDestruction(ObjectSE bean) 指定された Bean インスタンスがこのポストプロセッサーによる破棄を必要とするかどうかを判断します。 |
void | setServletConfig(ServletConfigEE servletConfig) このオブジェクトが実行される ServletConfigEE を設定します。 |
void | setServletContext(ServletContextEE servletContext) このオブジェクトが実行される ServletContextEE を設定します。 |
void | setUseSharedServletConfig(boolean useSharedServletConfig)setServletConfig を介して渡された共有 ServletConfig オブジェクトを使用するかどうかを設定します(使用可能な場合)。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic void setUseSharedServletConfig(boolean useSharedServletConfig)
setServletConfig を介して渡された共有 ServletConfig オブジェクトを使用するかどうかを設定します(使用可能な場合)。デフォルトは "true" です。この設定を "false" にして、Bean 名をサーブレット名としてモック ServletConfig オブジェクトに渡し、現在の ServletContext を保持します。
public void setServletContext(ServletContextEE servletContext)
ServletContextAwareServletContextEE を設定します。 通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware の setApplicationContext の後に呼び出されます。
ServletContextAware の setServletContext servletContext - このオブジェクトが使用する ServletContext オブジェクト InitializingBean.afterPropertiesSet(), ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)public void setServletConfig(ServletConfigEE servletConfig)
ServletConfigAwareServletConfigEE を設定します。 通常の Bean プロパティの設定後、InitializingBean の afterPropertiesSet またはカスタム init メソッドのような初期コールバックの前に呼び出されます。ApplicationContextAware の setApplicationContext の後に呼び出されます。
ServletConfigAware の setServletConfig servletConfig - このオブジェクトが使用する ServletConfig オブジェクト InitializingBean.afterPropertiesSet(), ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)public ObjectSE postProcessBeforeInitialization(ObjectSE bean, StringSE beanName) throws BeansException
BeanPostProcessorafterPropertiesSet またはカスタム init メソッドなど)の前に、この BeanPostProcessor を指定された新しい Bean インスタンスに適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。 デフォルトの実装は、指定された bean をそのまま返します。
BeanPostProcessor の postProcessBeforeInitialization bean - 新しい Bean インスタンス beanName - Bean の名前 null の場合、後続の BeanPostProcessors は呼び出されません BeansException - エラーの場合 InitializingBean.afterPropertiesSet()public ObjectSE postProcessAfterInitialization(ObjectSE bean, StringSE beanName) throws BeansException
BeanPostProcessorafterPropertiesSet またはカスタム init メソッドなど)の後に、指定された新しい Bean インスタンスにこの BeanPostProcessor を適用します。Bean にはすでにプロパティ値が入力されています。返された Bean インスタンスは、元のラッパーの可能性があります。FactoryBean の場合、このコールバックは、FactoryBean インスタンスと、FactoryBean によって作成されたオブジェクト(Spring 2.0 以降)の両方に対して呼び出されます。ポストプロセッサーは、対応する bean instanceof FactoryBean チェックを介して、FactoryBean または作成されたオブジェクトのいずれか、あるいはその両方に適用するかどうかを決定できます。
このコールバックは、他のすべての BeanPostProcessor コールバックとは対照的に、InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation(java.lang.Class<?>, java.lang.String) メソッドによってトリガーされた短絡後にも呼び出されます。
デフォルトの実装は、指定された bean をそのまま返します。
BeanPostProcessor の postProcessAfterInitialization bean - 新しい Bean インスタンス beanName - Bean の名前 null の場合、後続の BeanPostProcessors は呼び出されません BeansException - エラーの場合 InitializingBean.afterPropertiesSet(), FactoryBeanpublic void postProcessBeforeDestruction(ObjectSE bean, StringSE beanName) throws BeansException
DestructionAwareBeanPostProcessorDisposableBean の destroy およびカスタムの destroy メソッドと同様に、このコールバックはファクトリ内のシングルトン Bean(内部 Bean を含む)にのみ適用されます。
DestructionAwareBeanPostProcessor の postProcessBeforeDestruction bean - 破棄される Bean インスタンス beanName - Bean の名前 BeansException - エラーの場合 DisposableBean, AbstractBeanDefinition.setDestroyMethodName(java.lang.String)public boolean requiresDestruction(ObjectSE bean)
DestructionAwareBeanPostProcessor 注 : 最近追加されたものとしても、この方法は SmartDABPP サブインターフェースではなく DestructionAwareBeanPostProcessor 自体に導入されています。これにより、Spring <4.3 との互換性を維持しながら、既存の DestructionAwareBeanPostProcessor 実装で requiresDestruction ロジックを簡単に提供できます。また、requiresDestruction を Spring 5 の Java 8 デフォルトメソッドとして宣言することも簡単です。
DestructionAwareBeanPostProcessor の実装がこのメソッドの具体的な実装を提供しない場合、Spring の呼び出しメカニズムは、true (4.3 の前の有効なデフォルト、および Spring 5 の Java 8 メソッドのデフォルトになる)を返すメソッドを暗黙的に想定します。
DestructionAwareBeanPostProcessor の requiresDestruction bean - チェックする Bean インスタンス DestructionAwareBeanPostProcessor.postProcessBeforeDestruction(java.lang.Object, java.lang.String) が最終的にこの Bean インスタンスのために呼び出されることになっている場合は true、または不要な場合は false