zoukankan      html  css  js  c++  java
  • 手写简化版SpringBoot

    Springboot项目全部依赖注解的,web工程是如何启动的

    1 首先引入了Tomcat依赖,然后用java代码启动Tomcat容器,默认Tomcat版本是8.5版本

    2 Tomcat是实现了servlet3.0规范,在servlet加载类的过程中会寻找实现了ServletContainerInitializer接口的类,spring为我们实现了这个接口的类是SpringServletContainerInitializer,最后又会去调用实现了WebApplicationInitializer接口的类,最后真正是实现WebApplicationInitializer接口的是这个AbstractAnnotationConfigDispatcherServletInitializer,然后在该类中去初始化spring容器和springmvc容器和servlet拦截的url

    public class AppTomcat {
    
        public static void main(String[] args) throws ServletException, LifecycleException {
            start();
        }
    
        public static void start() throws ServletException, LifecycleException {
            //创建Tomcat容器和设置端口
            Tomcat tomcatServer = new Tomcat();
            tomcatServer.setPort(9090);
            
            StandardContext ctx = (StandardContext) tomcatServer.addWebapp("/", new File("src/main").getAbsolutePath());
            ctx.setReloadable(false);
            WebResourceRoot resources = new StandardRoot(ctx);
            
            File additionWebInfClasses = new File("target/classes");
            //告诉Tomcat项目的class目录,根目录
            resources.addPreResources(
                    new DirResourceSet(resources, "/WEB-INF/classes", additionWebInfClasses.getAbsolutePath(), "/"));
            //启动容器
            tomcatServer.start();
            tomcatServer.getServer().await();
            
        }
        
    }

    项目结构:

    github下载地址:https://github.com/jake1263/MySpringBoot

  • 相关阅读:
    Windows下sc create命令行注册服务
    FluentValidation .NET 验证组件
    Linux系统下安装Redis
    mysql的sql_mode设置
    Linux系统下安装rocketmq
    Windows系统中Nacos的下载安装及使用
    配置Mysql允许远程访问
    Sqlserver 获取每周的数据
    如何在Mac OS X上构建ClickHouse
    Mac 设置 JAVA_HOME 环境变量
  • 原文地址:https://www.cnblogs.com/moris5013/p/11165407.html
Copyright © 2011-2022 走看看