Package org.springframework.web.servlet.handler

# Class SimpleServletPostProcessor

java.lang.Object
org.springframework.web.servlet.handler.SimpleServletPostProcessor

All Implemented Interfaces:
  `org.springframework.beans.factory.Aware`, `org.springframework.beans.factory.config.BeanPostProcessor`, `org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor`, `org.springframework.web.context.ServletConfigAware`, `org.springframework.web.context.ServletContextAware`

public class SimpleServletPostProcessor extends Object implements org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor, org.springframework.web.context.ServletContextAware, org.springframework.web.context.ServletConfigAware
`BeanPostProcessor` that applies initialization and destruction callbacks to beans that implement the `Servlet` interface.

After initialization of the bean instance, the Servlet `init` method will be called with a ServletConfig that contains the bean name of the Servlet and the ServletContext that it is running in.

Before destruction of the bean instance, the Servlet `destroy` will be called.

Note that this post-processor does not support Servlet initialization parameters. Bean instances that implement the Servlet interface are supposed to be configured like any other Spring bean, that is, through constructor arguments or bean properties.

For reuse of a Servlet implementation in a plain Servlet container and as a bean in a Spring context, consider deriving from Spring's `HttpServletBean` base class that applies Servlet initialization parameters as bean properties, supporting both the standard Servlet and the Spring bean initialization style.

Alternatively, consider wrapping a Servlet with Spring's `ServletWrappingController`. This is particularly appropriate for existing Servlet classes, allowing to specify Servlet initialization parameters etc.

Since:
  1.1.5
Author:
  Juergen Hoeller
See Also:
  - `Servlet.init(jakarta.servlet.ServletConfig)`
  - `Servlet.destroy()`
  - `SimpleServletHandlerAdapter`

## Constructor Summary

Constructors
Constructor
Description
`SimpleServletPostProcessor()`

## Method Summary

Modifier and Type
Method
Description
`Object`
`postProcessAfterInitialization(Object bean, String beanName)`
`void`
`postProcessBeforeDestruction(Object bean, String beanName)`
`Object`
`postProcessBeforeInitialization(Object bean, String beanName)`
`boolean`
`requiresDestruction(Object bean)`
`void`
`setServletConfig(ServletConfig servletConfig)`
`void`
`setServletContext(ServletContext servletContext)`
`void`
`setUseSharedServletConfig(boolean useSharedServletConfig)`
Set whether to use the shared ServletConfig object passed in through `setServletConfig`, if available.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### SimpleServletPostProcessor

public SimpleServletPostProcessor()

## Method Details

### setUseSharedServletConfig

public void setUseSharedServletConfig(boolean useSharedServletConfig)
Set whether to use the shared ServletConfig object passed in through `setServletConfig`, if available.

Default is "true". Turn this setting to "false" to pass in a mock ServletConfig object with the bean name as servlet name, holding the current ServletContext.

See Also:
  - `setServletConfig(jakarta.servlet.ServletConfig)`

### setServletContext

public void setServletContext(ServletContext servletContext)

Specified by:
  `setServletContext` in interface `org.springframework.web.context.ServletContextAware`

### setServletConfig

public void setServletConfig(ServletConfig servletConfig)

Specified by:
  `setServletConfig` in interface `org.springframework.web.context.ServletConfigAware`

### postProcessBeforeInitialization

public Object postProcessBeforeInitialization(Object bean, String beanName) throws org.springframework.beans.BeansException

Specified by:
  `postProcessBeforeInitialization` in interface `org.springframework.beans.factory.config.BeanPostProcessor`
Throws:
  `org.springframework.beans.BeansException`

### postProcessAfterInitialization

public Object postProcessAfterInitialization(Object bean, String beanName) throws org.springframework.beans.BeansException

Specified by:
  `postProcessAfterInitialization` in interface `org.springframework.beans.factory.config.BeanPostProcessor`
Throws:
  `org.springframework.beans.BeansException`

### postProcessBeforeDestruction

public void postProcessBeforeDestruction(Object bean, String beanName) throws org.springframework.beans.BeansException

Specified by:
  `postProcessBeforeDestruction` in interface `org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor`
Throws:
  `org.springframework.beans.BeansException`

### requiresDestruction

public boolean requiresDestruction(Object bean)

Specified by:
  `requiresDestruction` in interface `org.springframework.beans.factory.config.DestructionAwareBeanPostProcessor`