Java/Spring/BeanFactoryPostProcessor

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

Add BeanFactoryPostProcessor 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="allBeansLister" class="AllBeansLister"/>

</beans>

File: Main.java import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; 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"));
   factory.getBean("w");
   AllBeansLister lister = new AllBeansLister();
   lister.postProcessBeanFactory(factory);
 }

} class AllBeansLister implements BeanFactoryPostProcessor {

 public void postProcessBeanFactory(ConfigurableListableBeanFactory factory)
     throws BeansException {
   
   System.out.println("The factory contains the followig beans:");
   String[] beanNames = factory.getBeanDefinitionNames();
   for (int i = 0; i < beanNames.length; ++i)
     System.out.println(beanNames[i]);
 }

}


      </source>
   
  
 
  



ApplicationContext And BeanFactoryPostProcessor

   <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="allBeansLister" class="AllBeansLister"/>

</beans>

File: Main.java import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; 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 AllBeansLister implements BeanFactoryPostProcessor {

 public void postProcessBeanFactory(ConfigurableListableBeanFactory factory) throws BeansException {
   System.out.println("The factory contains the followig beans:");
   String[] beanNames = factory.getBeanDefinitionNames();
   for (int i = 0; i < beanNames.length; ++i)
     System.out.println(beanNames[i]);
 }

}


      </source>