RxJavaJava编程语言爱好者

SpringBoot核心设计理念和核心组件

2021-02-27  本文已影响0人  迦叶_金色的人生_荣耀而又辉煌

上一篇 <<<SpringMVC适配器类型汇总
下一篇 >>>SpringBoot中有哪些starter


核心设计理念

a、能够实现帮助开发者快速的整合第三方框架(Spring、Mybatis、hibernate)
原理:Maven依赖封装整合和自定义starter
b、完全去除XML配置,采用注解形式
原理:SpringBoot其实根据Spring体系原生的注解实现包装
c、不需要外部容器 ,内嵌入服务器(Tomcat和Jetty)
原理:Java语言创建tomcat服务器,然后将本地class文件交给tomcat加载。

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>8.5.28</version>
        </dependency>
        <!-- Tomcat对jsp支持 -->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jasper</artifactId>
            <version>8.5.16</version>
        </dependency>
public static void main(String[] args) throws LifecycleException, ServletException {
        //创建Tomcat服务器
        Tomcat tomcatServer = new Tomcat();
        //指定端口号
        tomcatServer.setPort(8180);
        //读取项目路径
        StandardContext ctx = (StandardContext) tomcatServer.addWebapp("/", new File("src/main").getAbsolutePath());
        //禁止重新载入
        ctx.setReloadable(false);
        //class文件读取地址
        File additionWebInfClasses = new File("target/classes");
        //创建webroot
        WebResourceRoot resources = new StandardRoot(ctx);
        //tomcat内部读取class执行
        resources.addPreResources(new DirResourceSet(resources, "/target/classes", additionWebInfClasses.getAbsolutePath(), "/"));
        tomcatServer.start();
        //异步等待请求执行
        tomcatServer.getServer().await();
    }

核心组件

Starter、auto-configuration、actuator、cli


推荐阅读:
<<<SpringBoot中有哪些starter
<<<如何自定义SpringBoot starter
<<<SpringBoot启动流程说明
<<<SpringBoot常用注解及外部jar包注入方式
<<<SpringBoot之web开发
<<<SpringBoot全局异常捕获
<<<SpringBoot整合各种持久层技术
<<<SpringBoot整合Mybatis分页插件
<<<SpringBoot使用Atomikos技术整合多数据源
<<<SpringBoot实现热部署
<<<SpringBoot性能调优
<<<SpringBoot的Actuator监控和Admin-UI可视化
<<<SpringBoot常见面试问题

上一篇下一篇

猜你喜欢

热点阅读