Skip to content

Commit 8fe9dd9

Browse files
committed
feat:lifeCycle的测试
1 parent 2d3ad55 commit 8fe9dd9

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
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+
}

0 commit comments

Comments
 (0)