2-SpringBoot简介

2023-12-01 10:51:41 浏览数 (1)

SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程

都简化了了哪些东西呢?其实就是针对原始的 Spring 程序制作的两个方面进行了简化:

  • Spring 程序缺点
    • 依赖设置繁琐
      • 以前写 Spring 程序,使用的技术都要自己一个一个的写,现在不需要了,如果做过原始 SpringMVC 程序的小伙伴应该知道,写 SpringMVC 程序,最基础的 spring-web 和 spring-webmvc 这两个坐标时必须的,就这还不包含你用 json 啊等等这些坐标,现在呢?一个坐标搞定
    • 配置繁琐
      • 以前写配置类或者配置文件,然后用什么东西就要自己写加载 bean 这些东西,现在呢?什么都没写,照样能用

SpringBoot 程序的核心功能及优点:

  • 起步依赖(简化依赖配置)
    • 依赖配置的书写简化就是靠这个起步依赖达成的
  • 自动配置(简化常用工程相关配置)
    • 配置过于繁琐,使用自动配置就可以做响应的简化,但是内部还是很复杂的,后面具体展开说
  • 辅助功能(内置服务器,……)
    • 除了上面的功能,其实 SpringBoot 程序还有其他的一些优势,比如我们没有配置 Tomcat 服务器,但是能正常运行,这是 SpringBoot 程序的一个可以感知到的功能,也是 SpringBoot 的辅助功能之一。一个辅助功能都能做的这么 6,太牛了

1. parent

  1. 开发 SpringBoot 程序要继承 spring-boot-starter-parent
  2. spring-boot-starter-parent 中定义了若干个依赖管理
  3. 继承 parent 模块可以避免多个依赖使用相同技术时出现依赖版本冲突
  4. 继承 parent 的形式也可以采用引入依赖的形式实现效果

2. starter

starter 定义了使用某种技术时对于依赖的固定搭配格式,也是一种最佳解决方案,使用 starter 可以帮助开发者减少依赖配置

starter 与 parent 的区别

朦朦胧胧中感觉 starter 与 parent 好像都是帮助我们简化配置的,但是功能又不一样,梳理一下。

  1. starter是一个坐标中定了若干个坐标,以前写多个的,现在写一个,是用来减少依赖配置的书写量的
  2. parent是定义了几百个依赖版本号,以前写依赖需要自己手工控制版本,现在由 SpringBoot 统一管理,这样就不存在版本冲突了,是用来减少依赖冲突的

总结:

  1. 开发 SpringBoot 程序需要导入坐标时通常导入对应的 starter
  2. 每个不同的 starter 根据功能不同,通常包含多个依赖坐标
  3. 使用 starter 可以实现快速配置的效果,达到简化配置的目的

3. 引导类

其实 SpringBoot 程序启动还是创建了一个 Spring 容器对象。这个类在 SpringBoot 程序中是所有功能的入口,称这个类为引导类

作为一个引导类最典型的特征就是当前类上方声明了一个注解@SpringBootApplication

总结

  1. SpringBoot 工程提供引导类用来启动程序
  2. SpringBoot 工程启动后创建并初始化 Spring 容器

4. 内嵌 tomcat

内嵌 Tomcat 的位置 :

代码语言:javascript复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

4.1 内嵌 Tomcat 运行原理

如果是对象,那 Spring 容器是用来管理对象的,这个对象能不能交给 Spring 容器管理呢?把吗去掉,是个对象都可以交给 Spring 容器管理,行了,这下通了。tomcat 服务器运行其实是以对象的形式在 Spring 容器中运行的,怪不得我们没有安装这个 tomcat,而且还能用。闹了白天这东西最后是以一个对象的形式存在,保存在 Spring 容器中悄悄运行的。具体运行的是什么呢?其实就是上前面提到的那个 tomcat 内嵌核心

代码语言:javascript复制
<dependencies>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-core</artifactId>
        <version>9.0.52</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

总结

  1. 内嵌 Tomcat 服务器是 SpringBoot 辅助功能之一
  2. 内嵌 Tomcat 工作原理是将 Tomcat 服务器作为对象运行,并将该对象交给 Spring 容器管理
  3. 变更内嵌服务器思想是去除现有服务器,添加全新的服务器

0 人点赞