Hello World细节-场景启动器(starter)|学习笔记

简介: 快速学习Hello World细节-场景启动器(starter)

开发者学堂课程【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 文件来描述。


相关文章
|
8天前
|
负载均衡 Java 物联网
SpringCloud简介和用处
SpringCloud简介和用处
77 0
|
Java 数据库 Spring
【Spring Boot 快速入门】十六、Spring Boot项目中静态常量的定义方式
【Spring Boot 快速入门】十六、Spring Boot项目中静态常量的定义方式
1117 0
【Spring Boot 快速入门】十六、Spring Boot项目中静态常量的定义方式
|
9月前
|
Java Spring 容器
Spring Boot入门(十五) 之 国际化操作(页面的中英文相互切换)
Spring Boot入门(十五) 之 国际化操作(页面的中英文相互切换)
409 0
|
9月前
|
缓存 前端开发 Java
Spring Boot入门(十六) 之 模拟登录页面
Spring Boot入门(十六) 之 模拟登录页面
232 0
|
11月前
|
缓存 自然语言处理 Java
高效实现Web开发:掌握Spring Boot 2高级模块Thymeleaf的神奇妙用(下)
高效实现Web开发:掌握Spring Boot 2高级模块Thymeleaf的神奇妙用
138 0
|
11月前
|
XML 开发框架 前端开发
高效实现Web开发:掌握Spring Boot 2高级模块Thymeleaf的神奇妙用(上)
高效实现Web开发:掌握Spring Boot 2高级模块Thymeleaf的神奇妙用
146 0
|
12月前
|
XML NoSQL 安全
从零开始的Spring Boot自动配置学习和starter制作教程
从零开始的Spring Boot自动配置学习和starter制作教程
116 0
从零开始的Spring Boot自动配置学习和starter制作教程
|
Java API Spring
Spring Boot第四弹,一文教你如何无感知切换日志框架?
Spring Boot第四弹,一文教你如何无感知切换日志框架?
|
Java 应用服务中间件 Spring
spring学习的第一课:Hello world!
spring学习的第一课:Hello world!
73 0
|
XML Java 数据格式
如何实现一个自定义的starter
SpringFactoriesLoader加载器加载指定ClassLoader下面的所有的META-INF/spring.factories文件,并将文件解析内容存在Map&lt;string,list&gt;中。然后通过loadFactoryNames传递过来的class的名称从map中获取该类的配置列表。通过Set集合进行去重操作。执行过滤组件操作,而这些操作都是在AutoConfigurationImportFilter接口下的组件实现的,也即FilterSpringBootCondition实现抽象类的。下面有OnBeanCondition、OnClassCondition、OnWebApplic
36803 5
如何实现一个自定义的starter