1. 程式人生 > >Spring 進階(2) 容器後處理器

Spring 進階(2) 容器後處理器

  1. 容器後處理器針對的是容器本身,可以對整個容器進行修修補補。
  2. 用法是讓容器後處理器類實現BeanFactoryPostProcessor介面,重寫postProcessBeanFactory方法,又是這個套路啦~~
     void postProcessBeanFactory(ConfigurableListableBeanFactory var1) throws BeansException;

    把實現了容器後處理器的類按照普通bean一樣在配置檔案中配置,然後spring在完成容器初始化之後就對自動呼叫postProcessBeanFactory方法,把容器當作引數傳進去。

  3. 例子在這~~

    package TestPackage;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    //測試類
    public class SpringTest {
        public static void main(String [] args){
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
    
        }
    }
    
    package util;
    
    import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
    import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
    
    //容器後處理器類,打印出容器的相關資訊
    public class FactoryPostProcessor implements BeanFactoryPostProcessor {
        @Override
        public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
            System.out.println("spring容器是" + beanFactory);
        }
    
    }
    
    <?xml version="1.0" encoding="GBK"?>
    <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns="http://www.springframework.org/schema/beans"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    	http://www.springframework.org/schema/beans/spring-beans-4.0.xsd ">
    
        <bean id="FactoryPostProcessor" class="util.FactoryPostProcessor"/>
    <!--把容器後處理器當作普通的bean配置就好了-->
    </beans>

    這是我看李剛編著的《輕量級javaEE企業應用實戰(第五版)-Struts2+Spring5+Hibernate5/JAP2》後總結出來的。