开发者学堂课程【SpringBoot快速掌握 - 核心技术:Hello World细节-场景启动器(starter) 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/612/detail/9218
Hello World细节-场景启动器(starter)
内容介绍
一、pom文件
二、总结
一、POM文件:
在 pom 文件里,导入了相关依赖,这些依赖导入了很多 jar 包,首先这里应该有一个 parent 。
1.父项目
导入了一个父项目, boot-starter-parent,Sprintboot 所有 starter 的父项目,主是用来做依赖管理,父项目还依赖一个父项目,他的父项目是:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>1.5.12.RELEASE</version>
<relativePath>../../spring-boot-dependencies</relativePath>
</parent>
properties 属性里面有一个 Dependency versions ,定义了每一个依赖的版本,比如 activemq 的依赖,包括做切面的 aspect 的版本号, 都做了依赖管理。它是来管理 Spring Boot 应用里面的所有依赖版本,管理所有的这些依赖,也可以称为 Springboot 的版本
有了仲裁中心,导入依赖,默认是不需要写版本的,MYSQL驱动默认是不需要写版本的,包括所有的版本
依赖都在 dependecy 里面,没有在 dependency 管理的,要写版本,需要声明版本号,这个是第一个版本仲裁。
2、导入的依赖
父项目只是作为一个版本仲裁,除了依赖这个父项目以外,还有一个 stater-web ,导入了一个依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring-boot-starter-web :
导入了这个依赖,此依赖也没有写版本号,因为 SpringtBoot 进行了自动仲裁,然后他被命名为 spring-boot-starter-web ,把它拆分成两个词,一个是 sprint-boot-starter, 一个是 web 。
帮助导入了 web 模块正常运行所依赖的组件,场景启动器当使用 web 模块的时候,他会来帮助导入相关的 web 模块,
依赖的版本通过父项目进行仲裁,而在 Springboot 里面,还有更多的类似启动器,可以参考 springboot 的官方文档,
https://docs.spring.io/spring-boot/docs/1.5.22.RELEASE/reference/html/using-boot-build-systems.html
#using-boot-starter
搜索一下 Starters
Starters are a set of convenient dependency descriptors that you can include in your application.
我们就会获得相应的依赖, spring-boot 将所有的功能,都抽取出来了一个个场景,如我们要使用 activemq ,那么就有 activemq 的启动器,
如果要用 amqp 高级消息队列,就有这个启动器,如果要做 aop 功能,就导入这个启动器,比如要做数据 jpa 访问,
spring-boot-starter-activemq
spring-boot-starter-amqp
spring-boot-starter-aop
spring-boot-starter-data-jpa
如果左数据访问的 redis 模块, spring-boot-starter-data-redis
导入这个数据,如果要进行邮件开发,就导入 spring-boot-starter-mail 。如果要进行 web 开发,就导入 spring-boot-starter-web
二、总结
Sprintboot 将所有的功能场景,都抽取出来,然后做成一个个的 starters ,称之为启动器,用户只需要在项目里面,引入这些 starter ,相关
场景的所有依赖,都会导入进来,而且版本由 springboot 进行自动控制,用户要用某一个功能,就导什么场景,用户就不需要交依赖了,就叫启动器,使用此功能以后,每一种场景, sprintboot 都会帮助用户考虑,不需要导入这个启动器,应用就可以运行,用户点击就有 pom 文件来描述。