maven添加以下依赖

    1. <dependency>
    2. <groupId>org.apache.tomcat.embed</groupId>
    3. <artifactId>tomcat-embed-core</artifactId>
    4. <version>8.5.5</version>
    5. </dependency>
    6. <dependency>
    7. <groupId>org.apache.tomcat.embed</groupId>
    8. <artifactId>tomcat-embed-el</artifactId>
    9. <version>8.5.5</version>
    10. </dependency>
    11. <dependency>
    12. <groupId>org.apache.tomcat.embed</groupId>
    13. <artifactId>tomcat-embed-jasper</artifactId>
    14. <version>8.5.5</version>
    15. </dependency>

    实现Tomcat内置类

    package com.yguilai.commons.tomcat;
    
    import org.apache.catalina.Context;
    import org.apache.catalina.WebResourceRoot;
    import org.apache.catalina.startup.Tomcat;
    import org.apache.catalina.webresources.DirResourceSet;
    import org.apache.catalina.webresources.StandardRoot;
    
    import java.io.File;
    
    /**
     * @author 燕归来
     * @version 1.0.0
     * @description
     * @date 2020/3/5 13:26
     */
    
    public class StartTomcat implements Runnable {
        @Override
        public void run() {
            Tomcat tom = new Tomcat();
            // 设置端口, 根据实际情况修改, 以免出现端口被占用的情况
            tom.setPort(8083);
            try {
                // java资源路径
                String javaPath = StartTomcat.class.getResource("/").getPath();
                // webapp路径
                String webPath = new File("src/main/webapp").getAbsolutePath();
                // tom.addWebapp("/", webPath);中的第一参数是配置项目部署的路径,像idea中一般默认都是'/项目名', 我比较喜欢直接配置到根路径
                Context context = tom.addWebapp("/", webPath);
                WebResourceRoot webResource = new StandardRoot(context);
                webResource.addPreResources(new DirResourceSet(webResource, "/WEB-INF/classes", javaPath, "/"));
                tom.start();
            } catch (Exception e) {
                e.printStackTrace();
            }
            tom.getServer().await();
        }
    }
    

    StartTomcat类的javaPath和webPath需要根据自己的项目结构进行修改

    含main()方法的运行类

    package com.yguilai;
    
    import com.yguilai.commons.tomcat.StartTomcat;
    
    /**
     * @author 燕归来
     * @version 1.0.0
     * @description
     * @date 2020/3/5 13:30
     */
    
    public class AppMain {
        public static void main(String[] args) {
            new StartTomcat().run();
        }
    }
    

    运行main()方法即可.
    与在idea中直接配置tomcat服务相比, 使用内置tomcat项目启动速度快多了.