嵌入式启动tomcat
tomcat启动Servlet
public class ServletDemo {
public static void main(String[] args) throws Exception {
HttpServlet servlet = new HttpServlet() {
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
res.setContentType("text/html;charset=utf-8");
res.getWriter().write("servlet demo .... done ");
}
};
Tomcat tomcat = new Tomcat();
Context context = tomcat.addContext("/neei", null);
tomcat.addServlet("/neei","demo",servlet);
context.addServletMappingDecoded("/demo","demo");
tomcat.init();
tomcat.start();
tomcat.getServer().await();
}
}
tomcat启动web应用
public class WebAppEmbed {
public static void main(String[] args) throws Exception {
Tomcat tomcat = new Tomcat();
tomcat.addWebapp("neei_demo","web项目路径...");
tomcat.init();
tomcat.start();
tomcat.getServer().await();
}
}
SpringBoot内嵌tomcat启动应用
源码地址:org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory#getWebServer
public WebServer getWebServer(ServletContextInitializer... initializers) {
if (this.disableMBeanRegistry) {
Registry.disableRegistry();
}
Tomcat tomcat = new Tomcat();
File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat");
tomcat.setBaseDir(baseDir.getAbsolutePath());
Connector connector = new Connector(this.protocol);
connector.setThrowOnFailure(true);
tomcat.getService().addConnector(connector);
customizeConnector(connector);
tomcat.setConnector(connector);
tomcat.getHost().setAutoDeploy(false);
configureEngine(tomcat.getEngine());
for (Connector additionalConnector : this.additionalTomcatConnectors) {
tomcat.getService().addConnector(additionalConnector);
}
prepareContext(tomcat.getHost(), initializers);
return getTomcatWebServer(tomcat);
}