How Tomcat works 14: Service 和 Server

一、Server
    1. 总体架构位置

How Tomcat works 14: Service 和 Server
    2. Server的设计目的
    Server提供了优雅的启动停止所有内部组件的功能,有了server,无需再单独启动connector和Container
    3. Server具体内部功能
    server的许多内部方法都可以配置在server.xml文件中。可以包含0个到多个Service。Server的生命周期关联四个方法:initialize, start, stop,await(用于等待某个端口如8085的stop命令,收到则执行stop)

How Tomcat works 14: Service 和 Server
二、Service
    1. 概述:
    一个service通常可以有一个Container和多个connectors
    How Tomcat works 14: Service 和 Server
    
三、带有server,service的bootStrap代码

Engine engine = new StandardEngine(); 
	engine.addChild(host); 
	engine.setDefaultHost("localhost"); 
	Service service = new StandardService(); 
	service.setName("Stand-alone Service"); 
	Server server = new StandardServer(); 
	server.addService(service); 
	service.addConnector(connector); 
	// StandardService class's setContainer method calls 
	// its connectors' setContainer method 
	service.setContainer(engine); 
	// Start the new server 
	if (server instanceof Lifecycle) { 
	  try { 
	    server.initialize(); 
	    ((Lifecycle) server).start(); 
	    server.await(); 
	    // the program waits until the await method returns, 
	    // i.e. until a shutdown command is received. }
	    catch (LifecycleException e) { 
	      e.printStackTrace(System.out);
	    } 
	} 
	// Shut down the server 
	if (server instanceof Lifecycle) { 
	  try { 
	      ((Lifecycle) server).stop(); 
	   } catch (LifecycleException e) { 
	   e.printStackTrace(System.out); 
	}