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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 1.實現Lifecycle 接口 ~~~ import org.springframework.context.Lifecycle; public class MyLifeCycle implements Lifecycle { /** * 運行狀態 */ private volatile boolean running = false; /** * 容器啟動后調用 */ @Override public void start() { System.out.println("容器啟動后執行MyLifeCycle操作..."); running = true; } /** * 容器停止時調用 */ @Override public void stop() { System.out.println("收到關閉容器的信號MyLifeCycle操作..."); running = false; } /** * 檢查此組件是否正在運行。 * 1. 只有該方法返回false時,start方法才會被執行。 * 2. 只有該方法返回true時,stop(Runnable callback)或stop()方法才會被執行。 */ @Override public boolean isRunning() { System.out.println("檢查MyLifeCycle組件的運行狀態:" + running); return running; } } ~~~ ## 2. 配置spring.xml ~~~ <bean id="myLifeCycle" class="com.example.demo.MyLifeCycle" /> ~~~ ## 3.測試 ~~~ public static void main(String[] args) { ClassPathXmlApplicationContext context =new ClassPathXmlApplicationContext("spring.xml"); System.out.println("===================="); context.start(); System.out.println("==============================="); context.stop(); // 輸出 // ==================== //檢查MyLifeCycle組件的運行狀態:false //容器啟動后執行MyLifeCycle操作... //=============================== //檢查MyLifeCycle組件的運行狀態:true //收到關閉容器的信號MyLifeCycle操作... } ~~~ ## 4.總結 1.當 ApplicationContext 執行 start 時,spring默認會調用 ***LifecycleProcessor***的start 方法 ,LifecycleProcessor 的默認實現DefaultLifecycleProcessor 會調用start -> doStart 方法,執行自定義的 Lifecycle 的start方法 2.當 ApplicationContext 執行 stop 時 ,DefaultLifecycleProcessor 會調用 stop->stopBeans 方法執行自定義的 Lifecycle 的stop方法 3..Lifecycle接口是顯式啟動和停止通知的純契約,并不意味著在上下文刷新時自動啟動。為了對特定bean的自動啟動進行細粒度控制(包括啟動階段),可以考慮改用實現org.springframework.context.[SmartLifeCycle](%E8%87%AA%E5%AE%9A%E4%B9%89%E5%AE%9E%E7%8E%B0SmartLifeCycle%E6%8E%A5%E5%8F%A3.md)。(官方說的) 4.我的理解:LifeCycle只會感知容器開始和啟動生命周期,在自動start 的容器刷新時期時不會被調用的。 同時stop通知也不一定保證會觸發的。
                  <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>

                              哎呀哎呀视频在线观看