Java/Spring/BeanPostProcessor

Материал из Java эксперт
Перейти к: навигация, поиск

Add BeanPostProcessor To XmlBeanFactory

   <source lang="java">
      

File: context.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

   "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

 <bean id="w" class="java.lang.String">
 </bean>

 <bean id="beanInitLogger" class="BeanInitializationLogger"/>

</beans>

File: Main.java import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; class Main {

 public static void main(String args[]) throws Exception {
   XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("context.xml"));
   BeanInitializationLogger logger = new BeanInitializationLogger();
   factory.addBeanPostProcessor(logger);
   factory.preInstantiateSingletons();
 
 }

} class BeanInitializationLogger implements BeanPostProcessor {

 public Object postProcessBeforeInitialization(Object bean, String beanName)
     throws BeansException {
   return bean;
 }
 public Object postProcessAfterInitialization(Object bean, String beanName)
     throws BeansException {
   
   System.out.println("Bean "" + beanName + "" initialized");
   return bean;
 }

}


      </source>
   
  
 
  



Implements BeanPostProcessor

   <source lang="java">
      

File: context.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

   "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

 <bean id="w" class="java.lang.String">
 </bean>

 <bean id="beanInitLogger" class="BeanInitializationLogger"/>

</beans>

File: Main.java import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; class Main {

 public static void main(String args[]) throws Exception {
   ApplicationContext ctx = new ClassPathXmlApplicationContext("context.xml");
   ctx.getBean("w");
   
 
 }

} class BeanInitializationLogger implements BeanPostProcessor {

 public Object postProcessBeforeInitialization(Object bean, String beanName)
     throws BeansException {
   return bean;
 }
 public Object postProcessAfterInitialization(Object bean, String beanName)
     throws BeansException {
   
   System.out.println("Bean "" + beanName + "" initialized");
   return bean;
 }

}


      </source>