POM文件
继承
Spring Boot 的父级依赖,只有继承它项目才是 Spring Boot 项目。
spring-boot-starter-parent 是一个特殊的 starter,
它用来提供相关的 Maven 默认依赖。使用它之后,常用的包依赖可以省去 version 标签。
也就是继承的是springboot默认的启动器
依赖
启动器依赖
插件
spring-boot-maven-plugin 插件是将 springboot 的应用程序打包成 jar 包的插件。
将所有应用启动运行所需要的 jar 包都包含进来,从逻辑上将具备了独立运行的条件。
当运行"mvn package"进行打包后,使用"java -jar"命令就可以直接运行。
启动类
Spring Boot 的启动类的作用是启动 Spring Boot 项目
过去的方式是放在容器中启动,而spring是内置了容器所以是启动springboot
是基于 Main 方法来运行的。
注意:
启动类在启动时会做注解扫描(@Controller、@Service、@Repository......),
扫描位置为同包或者子包下的注解,所以启动类的位置应放于包的根下
SpringbootdeomApplication
启动类与启动器区别:
启动类
表示项目的启动入口
启动器
表示jar包的坐标
启动器
Spring Boot 将所有的功能场景都抽取出来,做成一个个的 starter(启动器),
只需要在项目里面引入这些 starter 相关场景的所有依赖都会导入进来,
要用什么功能就导入什么场景, 在 jar 包管理上非常方便,最终实现一站式开发。
Spring Boot提供了多达44个启动器,未来仍会增加。详见下方链接
所谓的启动器就是负责支持某个模块的jar包集合,比如说持久化操作的时候导入的jar包依赖有好几个,但是springboot中就归纳为一个启动器,加载启动器就是添加了相关模块操作时会使用的jar包
比较核心的有:
spring-boot-starter →不用额外导包因为其他启动器就包含了这个
这是Spring Boot的核心启动器,包含了自动配置、日志和YAML。
spring-boot-starter-actuator
帮助监控和管理应用。
spring-boot-starter-web
支持全栈式Web开发,包括Tomcat和spring webmvc.
启动器命名规则:
spring-boot-starter-xxx
Balmy:[SpringBoot] 03- SpringBoot2.X 启动器介绍zhuanlan.zhihu.com配置文件
Spring Boot 提供一个名称为 application 的全局配置文件
支持两种格式
- properteis
- YAML
properteis 格式
官网配置下载以及脚手架搭建的项目就会自动生成,生成位置如下图
YAML 格式
YAML 格式配置文件的扩展名可以是 yaml 或者 yml。
基本格式要求
大小写敏感
使用缩进代表层级关系
相同的部分只出现一次
相同部分只能出现一次 :错误写法
正确写法
配置文件存放位置
当前项目根目录中
当前项目根目录下的一个/config 子目录中
项目的 resources 即 classpath 根路径中
项目的 resources 即 classpath 根路径下的/config 目录中
配置文件加载顺序
不同格式的加载顺序
如 果 同 一 个 目 录 下 , 有 application.yml 也 有 application.properties
默 认 先 读 取 application.properties。
如果同一个配置属性,在多个配置文件都配置了,默认使用第 1 个读取到的,
后面读取 的不覆盖前面读取到的。
不同位置的加载顺序
当前项目根目录下的一个/config 子目录中(最高)
config/application.properties
config/application.yml
当前项目根目录中(其次)
application.properties
application.yml
项目的 resources 即 classpath 根路径下的/config 目录中(一般) resources/config/application.properties
resources/config/application.yml
项目的 resources 即 classpath 根路径中(最后)
resources/application.properties
resources/application.yml
配置文件中的占位符
占位符语法
语法:${}
占位符作用
"${}"中可以获取框架提供的方法中的值如:http://random.int 等。
♥占位符可以获取配置文件中的键的值赋给另一个键作为值。
生成随机数
${random.value} - 类似 uuid 的随机数,没有"-"连接
${http://random.int} - 随机取整型范围内的一个值
${random.long} - 随机取长整型范围内的一个值
${random.long(100,200)} - 随机生成长整型 100-200 范围内的一个值
${random.uuid} - 生成一个 uuid,有短杠连接
${http://random.int(10)} - 随机生成一个 10 以内的数
${http://random.int(100,200)} - 随机生成一个 100-200 范围以内的数
bootstrap 配置文件
bootstrap 配置文件介绍
Spring Boot 中有两种上下文对象,
一种是 bootstrap,
另外一种是 application, → 对应applicationContext
bootstrap 是应用程序的父上下文
即bootstrap是application的父级对象
也就是说 bootstrap 加载优先于 applicaton。
bootstrap
- 主要用于从额外的资源来加载配置信息
- 还可以在本地外部配置文件中解密属性。
这两个上下文共用一个环境,
♥它是任何 Spring 应用程序的外部属性的来源。
→ 用法 以后在做微服务的时候
微服务的分布式配置中心 :把所有的配置文件拿出来放到远程仓库中做一个集中式的管理
最终需要依靠bootstrap来引入实现
bootstrap 里面的属性会优先加载, 它们默认也不能被本地相同配置覆盖。
bootstrap 配置文件特征
boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载。
boostrap 里面的属性不能被覆盖。
bootstrap 与 application 的应用场景
application 配置文件主要用于 Spring Boot 项目的自动化配置。
bootstrap 配置文件有以下几个应用场景。
使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息。
一些固定的不能被覆盖的属性。
一些加密/解密的场景。