Example usage for org.springframework.beans.factory.annotation InitDestroyAnnotationBeanPostProcessor setInitAnnotationType

List of usage examples for org.springframework.beans.factory.annotation InitDestroyAnnotationBeanPostProcessor setInitAnnotationType

Introduction

In this page you can find the example usage for org.springframework.beans.factory.annotation InitDestroyAnnotationBeanPostProcessor setInitAnnotationType.

Prototype

public void setInitAnnotationType(Class<? extends Annotation> initAnnotationType) 

Source Link

Document

Specify the init annotation to check for, indicating initialization methods to call after configuration of a bean.

Usage

From source file:org.apache.james.container.spring.lifecycle.osgi.OsgiLifecycleBeanFactoryPostProcessor.java

@Override
public void postProcessBeanFactory(BundleContext context, ConfigurableListableBeanFactory factory)
        throws BeansException, InvalidSyntaxException, BundleException {
    // We need to set the beanfactory by hand. This MAY be a bug in spring-dm but I'm not sure yet
    LogEnabledBeanPostProcessor loggingProcessor = new LogEnabledBeanPostProcessor();
    loggingProcessor.setBeanFactory(factory);
    loggingProcessor.setLogProvider(logProvider);
    loggingProcessor.setOrder(0);//from  w ww. j ava 2s  .c  om
    factory.addBeanPostProcessor(loggingProcessor);

    OSGIResourceAnnotationBeanPostProcessor resourceProcessor = new OSGIResourceAnnotationBeanPostProcessor();
    resourceProcessor.setBeanClassLoader(factory.getBeanClassLoader());
    resourceProcessor.setBeanFactory(factory);
    resourceProcessor.setBundleContext(context);
    resourceProcessor.setTimeout(60 * 1000);
    factory.addBeanPostProcessor(resourceProcessor);

    OSGIPersistenceUnitAnnotationBeanPostProcessor persistenceProcessor = new OSGIPersistenceUnitAnnotationBeanPostProcessor();
    persistenceProcessor.setBeanClassLoader(factory.getBeanClassLoader());
    persistenceProcessor.setBeanFactory(factory);
    persistenceProcessor.setBundleContext(context);
    persistenceProcessor.setTimeout(60 * 1000);
    factory.addBeanPostProcessor(persistenceProcessor);

    ConfigurableBeanPostProcessor configurationProcessor = new ConfigurableBeanPostProcessor();
    configurationProcessor.setBeanFactory(factory);
    configurationProcessor.setConfigurationProvider(confProvider);
    configurationProcessor.setOrder(2);
    factory.addBeanPostProcessor(configurationProcessor);

    InitDestroyAnnotationBeanPostProcessor annotationProcessor = new InitDestroyAnnotationBeanPostProcessor();
    annotationProcessor.setInitAnnotationType(PostConstruct.class);
    annotationProcessor.setDestroyAnnotationType(PreDestroy.class);
    factory.addBeanPostProcessor(annotationProcessor);

}