古詩詞大全網 - 成語解釋 - Tomcat啟動過程都幹了啥

Tomcat啟動過程都幹了啥

在了解Tomcat啟動過程之前,最好還是上網查查Tomcat有哪些頂層的接口,也就是Tomcat的設計架構,不然暈著頭就去調試代碼,是看不出什麽來的。

通過網上的了解,知道了Tomcat主要的接口有:

·Server、Service、Container、Connector、Lifecycle、Executor、Engine

、Host、Context、Wrapper、Value以及他們之間的關系。

其他的:

Realm、MBean等等。

緊接著大致的瀏覽了壹下這些頂級接口,以及他們之間的關系,畫了壹張類圖,如下:

public?static?void?main(String args[]) {

02.?

03.if?(daemon ==?null) {

04.?

05.daemon =?new?Bootstrap();

06.?

07.try?{

08.?

09.// 初始化守護進程,其實就是初始化類加載器

10.?

11.daemon.init();

12.?

13.}?catch?(Throwable t) {

14.?

15.t.printStackTrace();

16.?

17.return;

18.?

19.}

20.?

21.}

22.?

23.?

24.?

25.try?{

26.?

27.String command =?"start";

28.?

29.if?(args.length >?0) {

30.?

31.command = args[args.length -?1];

32.?

33.}

34.?

35.?

36.?

37.if?(command.equals("startd")) {

38.?

39.args[args.length -?1] =?"start";

40.?

41.daemon.load(args);

42.?

43.daemon.start();

44.?

45.}?else?if?(command.equals("stopd")) {

46.?

47.args[args.length -?1] =?"stop";

48.?

49.daemon.stop();

50.?

51.}?else?if?(command.equals("start")) {

52.?

53.daemon.setAwait(true);

54.?

55.// 加載相關配置文件,初始化幾個主要的頂層接口實例

56.?

57.daemon.load(args);

58.?

59.// 啟動那些有生命周期的頂層實例,監聽用戶請求

60.?

61.daemon.start();

62.?

63.}?else?if?(command.equals("stop")) {

64.?

65.daemon.stopServer(args);

66.?

67.}?else?{

68.?

69.log.warn("Bootstrap: command \""?+ command +?"\" does not exist.");

70.?

71.}

72.?

73.}?catch?(Throwable t) {

74.?

75.t.printStackTrace();

76.?

77.}

78.?

79.?

80.?

81.}

從這個方法看,Tomcat啟動過程可以簡化為3個步驟:

1)初始化守護進程,其實就是初始化類加載器

2)加載相關配置文件,初始化幾個主要的頂層接口實例,簡單了說,就是服務器初始化。

3)啟動那些有生命周期的頂層實例,監聽用戶請求,簡單了說,就是啟動服務器。