SpringBoot第一节
Spring Boot
Spring Boot 概述
Spring Boot功能
自动配置
自动配置是一个运行时(应运程序启动时)的过程,考虑了众多因素,才决定Spring配置该用哪个,不该用哪个。过程由SpringBoot自动完成。
起步依赖
本质上是一个Maven项目对象模型,定义了对其他库的传递依赖,加在一起支持某项功能。
简单来说就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
辅助功能
提供了一些大型项目中常见的非功能性特性,如:嵌入式服务器、安全、指标、健康监测、外部配置等。
Spring Boot 并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
Spring Boot快速入门
案例:需求
- 搭建Spring Boot工程,定义HelloController.hello()方法,返回"Hello SpringBoot!".
案例:实现步骤
①创建Maven项目
②导入SpringBoot起步依赖
③定义Controller
④编写引导类
⑤启动测试
小结
- SpringBoot在创建项目时,使用jar的打包方式。
- SpringBoot的引导类,是项目入口,运行main方法就可以启动项目。
- 使用SpringBoot和Spring构建的项目,业务代码编写方式完全一样。
SpringBoot 起步依赖原理分析
- 在Spring-Boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本
- 在各种的atart中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程
- 我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。
SpringBoot配置
配置文件分类
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。
- properties:
server.port=8080
- yml:
sever:
port: 8080
小结
- SpringBoot提供了2种配置文件类型:properteis和yml/yaml
- 默认配置文件名称:application
- 在同一级目录下优先级为:properties>yml>yaml
yaml
yaml是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持yaml库的不同的编程语言程序导入。
yaml文件是以数据为核心的,比传统的xml方式更加简洁。
yaml文件的扩展名可以使用.yml或者.yaml。
- properties:
sever.port=8080
sever.address=127.0.0.1
- xml:
<sever>
<port>8080</port>
<address>127.0.0.1</address>
</server>
- yml:
server:
port: 8080
address: 127.0.0.1
简洁,以数据为核心
基本语法
- 大小写敏感
- 数据值前边必须有空格,作为分隔符
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格键(各系统Tab对应的空格数目可能不同,导致层次混乱)
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
#
表示注释,从这个字符一直到行尾,都会被解析器忽略。
server:
port: 8080
address: 127.0.0.1
name:abc
数据格式
- 对象(map):键值对的集合
person:
name: zhangsan
# 行内写法
person: {name: zhangsan}
- 数组:一组按次序排列的值
address:
- beijing
- shanghai
#行内写法
address: [beijing,shanghai]
- 纯量:单个的、不可再分的值
msg1: 'hello \n world' #单引忽略转义字符
msg2: "hello \n world" #双引识别转义字符
参数引用
name: lisi
person:
name: ${name} #引用上面定义的name的值
小结
配置文件类型
- properties:和以前一样
- yml/yaml:注意空格
yaml:简洁,以数据为核心
- 基本语法
- 大小写敏感
- 数据值前边必须有空格作为分隔符
- 使用空格缩进表示层级关系,相同缩进表示同一级
- 数据格式
- 对象
- 数组:使用
-
表示数组每个元素 - 纯量
- 参数引用
- ${key}