> For the complete documentation index, see [llms.txt](https://bernardo.gitbook.io/development-docs-java/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bernardo.gitbook.io/development-docs-java/spring-beans/extending-initialization.md).

# Extending Initialization

The BeanPostProcessor allows extending the initialization procedure.

For example it may be used to wrap components:

```java
public final class AdditionalSecurityBeanPostProcessor implements BeanPostProcessor
{

   @Override
   public final Object postProcessBeforeInitialization(final Object bean, final String beanName) throws BeansException
   {
      return bean;
   }

   @Override
   public final Object postProcessAfterInitialization(final Object bean, final String beanName) throws BeansException
   {
      if (bean instanceof SecurityComponent)
      {
         return new AdditionalSecurityComponentWrapper((SecurityComponent) bean);
      }

      return bean;
   }

}
```
