File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed
spring-test/src/main/java/org/springframework/wx/lifesycle Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change 1+ package org .springframework .wx .lifesycle ;
2+
3+ import org .springframework .context .SmartLifecycle ;
4+ import org .springframework .stereotype .Component ;
5+
6+ /**
7+ * @author wuxin
8+ * @date 2023/04/18 16:28:21
9+ */
10+ @ Component
11+ public class MySmartLifeCycle implements SmartLifecycle {
12+
13+
14+ private boolean isRuning = false ;
15+
16+ /**
17+ * isRunning是false的时候才会执行
18+ */
19+ @ Override
20+ public void start () {
21+ System .out .println ("容器现在开始启动" );
22+ isRuning = true ;
23+ }
24+
25+ /**
26+ * jvm默认会等所有的hook都执行完毕之后才会 关闭虚拟机
27+ * isRunning是true的时候才会执行
28+ */
29+ @ Override
30+ public void stop () {
31+ System .out .println ("现在关闭开始----------------------------------现在关闭" );
32+
33+ for (int i = 1 ; i < 100 ; i ++) {
34+ try {
35+ Thread .sleep (1000 );
36+ System .out .println (("执行" + i + "次" ));
37+ } catch (InterruptedException e ) {
38+ throw new RuntimeException (e );
39+ }
40+ }
41+
42+ System .out .println ("现在关闭结束----------------------------------现在关闭" );
43+ isRuning = false ;
44+ }
45+
46+ /**
47+ * 在DefualtLifeCycleProcessor在调用这些是实现类的时候
48+ * 会先检测容器是否还存货,如果不在存活则不会调用
49+ * 也就是说这里给了false这里就不会被调用
50+ * @return
51+ */
52+ @ Override
53+ public boolean isRunning () {
54+ return isRuning ;
55+ }
56+
57+
58+ }
You can’t perform that action at this time.
0 commit comments