<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                Spring 容器可以管理 singleton 作用域 Bean 的生命周期,在此作用域下,Spring 能夠精確地知道該 Bean 何時被創建,何時初始化完成,以及何時被銷毀。 <br/> 對于 prototype 作用域的 Bean,Spring 只負責創建,當容器創建了 Bean 的實例后,Bean 的實例就交給客戶端代碼管理,Spring 容器將不再跟蹤其生命周期。 <br/> **1. bean的生命周期有7步** (1)通過構造器創建 bean 實例(無參數構造)。 (2)為 bean 的屬性設置值和對其他 bean 引用(調用 set 方法)。 (3)調用 bean 的初始化方法之前。 (4)調用 bean 的初始化方法(需要進行配置初始化的方法)。 (5)調用 bean 的初始化方法之后。 (6)bean 可以使用了(對象獲取到了)。 (7)當容器關閉時候,調用 bean 的銷毀的方法(需要進行配置銷毀的方法)。 <br/> **2. 演示bean生命周期** (1)待注入到IOC容器的類。 ```java public class Orders { public Orders() { System.out.println("第一步 執行無參數構造創建 bean 實例"); } private String oname; public void setOname(String oname) { this.oname = oname; System.out.println("第二步 調用 set 方法設置屬性值"); } //創建執行的初始化的方法 public void initMethod() { System.out.println("第四步 執行初始化的方法"); } //創建執行的銷毀的方法 public void destroyMethod() { System.out.println("第七步 執行銷毀的方法"); } } ``` ```java /** * BeanPostProcessor是bean的后置處理器 */ public class CustomBeanPost implements BeanPostProcessor { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { System.out.println("第三步 在初始化之前執行的方法"); return bean; } @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { System.out.println("第五步 在初始化之后執行的方法"); return bean; } } ``` (2)注入IOC容器。 *`ApplicationContext-life.xml`* ```xml <bean id="customBeanPost" class="com.learn.spring.life.CustomBeanPost "></bean> <bean id="orders" class="com.learn.spring.life.Orders" init-method="initMethod" destroy-method="destroyMethod"> <property name="oname" value="手機"></property> </bean> ``` (3)測試。 ```java @Test public void testLife() { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext-life.xml"); Orders orders = context.getBean("orders", Orders.class); System.out.println("第六步 獲取創建 bean 實例對象"); //手動讓 bean 實例銷毀 context.close(); } ``` (4)程序執行步驟如下。 ``` 第一步 執行無參數構造創建 bean 實例 第二步 調用 set 方法設置屬性值 第三步 在初始化之前執行的方法 第四步 執行初始化的方法 第五步 在初始化之后執行的方法 第六步 獲取創建 bean 實例對象 第七步 執行銷毀的方法 ```
                  <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>

                              哎呀哎呀视频在线观看