<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 一、簡單介紹 ### **1. init-method方法:** 初始化bean的時候執行,可以針對某個具體的bean進行配置。init-method需要在applicationContext.xml配置文檔中bean的定義里頭寫明。例如: `<bean id="TestBean" class="nju.software.xkxt.util.TestBean" init-method="init"></bean>` 這樣,當TestBean在初始化的時候會執行TestBean中定義的init方法。 2、afterPropertiesSet方法,初始化bean的時候執行,可以針對某個具體的bean進行配置。afterPropertiesSet 必須實現 InitializingBean接口。實現 InitializingBean接口必須實現afterPropertiesSet方法。 3、BeanPostProcessor,針對所有Spring上下文中所有的bean,可以在配置文檔applicationContext.xml中配置一個BeanPostProcessor,然后對所有的bean進行一個初始化之前和之后的代理。BeanPostProcessor接口中有兩個方法: postProcessBeforeInitialization和postProcessAfterInitialization。 postProcessBeforeInitialization方法在bean初始化之前執行, postProcessAfterInitialization方法在bean初始化之后執行。 ~~~ @Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) { ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean(); ~~~ ## 1. BeanPostProcessor簡介 BeanPostProcessor是Spring IOC容器給我們提供的一個擴展接口。接口聲明如下: ~~~ public interface BeanPostProcessor { //bean初始化方法調用前被調用 Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException; //bean初始化方法調用后被調用 Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException; } ~~~ **運行順序** \===Spring IOC容器實例化Bean=== \===調用BeanPostProcessor的postProcessBeforeInitialization方法=== \===調用bean實例的初始化方法=== \===調用BeanPostProcessor的postProcessAfterInitialization方法=== ![](https://img.kancloud.cn/92/f1/92f18e1206de109a526cf4794cfd5573_844x334.png) ## 2. BeanPostProcessor實例 ~~~ /** * 后置處理器:初始化前后進行處理工作 * 將后置處理器加入到容器中 */ @Component public class MyBeanPostProcessor implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { // TODO Auto-generated method stub System.out.println("postProcessBeforeInitialization..."+beanName+"=>"+bean); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { // TODO Auto-generated method stub System.out.println("postProcessAfterInitialization..."+beanName+"=>"+bean); return bean; } } ~~~ #### 3. BeanFactoryPostProcessor簡介 bean工廠的bean屬性處理容器,說通俗一些就是可以管理我們的bean工廠內所有的beandefinition(未實例化)數據,可以隨心所欲的修改屬性。 #### 4\. BeanFactoryPostProcessor實例 ~~~java @Component public class MyBeanFactoryPostProcessor implements BeanFactoryPostProcessor { @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { System.out.println("MyBeanFactoryPostProcessor...postProcessBeanFactory..."); int count = beanFactory.getBeanDefinitionCount(); String[] names = beanFactory.getBeanDefinitionNames(); System.out.println("當前BeanFactory中有"+count+" 個Bean"); System.out.println(Arrays.asList(names)); } } ~~~ **區別:** 注冊BeanFactoryPostProcessor的實例,需要重載 void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException; 通過beanFactory可以獲取bean的示例或定義等。同時可以修改bean的屬性,這是和BeanPostProcessor最大的區別。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看