SpringBoot框架
SpringBoot
什么是Springboot
Springboot其实就是基于Spring框架的扩展,相当于Spring那些基于XML文件的繁琐配置,SpringBoot开发更加快速便捷,同时还使用了内嵌式的Tomcat服务容器,提供了Starters来简化项目的构建配置,同时来尽可能的自动配置Spring应用。
总结
:SpringBoot就是使编码变简单、配置变简单、部署变简单、监控变简单…
起步依赖
spring-boot-starter-parent
创建一个SpringBoot项目后,打开pom.xml配置文件会有如下代码
1 | <parent> |
点开 spring-boot-starter-parent 出现另一个配置文件,然后有如下代码
1 | <parent> |
再次点开 spring-boot-dependencies 就会有一个依赖配置文件,里面有个
称为版本控制锁定,当继承了这个配置文件时就不需要指定对应依赖的版本,而这些依赖的版本也是经过测试的,相互之间不会造成冲突,因此为项目的配置提供了很大的便利。
spring-boot-starter-web
1 | <dependency> |
点击 spring-boot-starter-web 会有一个springboot Web开发的依赖配置文件,里面定义了了Web开发需要的一些依赖坐标信息,因此只要依赖于在这个文件,根据依赖的传递,因此就可以间接的导入这些依赖,而不用自己一个一个去导入,简化了项目的配置。
starter场景启动器
对于依赖 spring-boot-starter-* : * 就代表着某种场景,只要引入starter,这个场景的所有常规需要的依赖我们都自动引入。
支持的场景有:Starters
如果需要修改项目依赖的版本号
例如:需要修改mysql连接驱动的版本号
首先查看spring-boot-dependencies里规定当前依赖的版本用的 key
1
<mysql.version>8.0.26</mysql.version>
然后在当前项目的配置文件里重写
1
2
3<properties>
<mysql.version>5.1.43</mysql.version>
</properties>
自动配置
引入spring-boot-web 场景启动器的时候,已经自动引入Tomcat依赖,和SpringMVC依赖,自动配置好了常用的组件。
默认的组件配置扫描
主程序所在的包及其下面的子包里面的组件都会被默认扫描进ConfigurableApplicationContext(一个IOC容器)
如果想要改变扫描路径
@SpringBootApplication(scanBasePackages=“包名”)
1或者使用注解@ComponentScan 指定扫描路径
1因此
1
2
3
4
5
等同于
注解说明
@Configuration
相当于传统的xml配置文件,
如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类,可以使用@ImportResource注解加载xml配置文件。
beans.xml 配置文件
1 |
|
1 | //加载xml配置文件 |
测试结果
:

配置文件分类
properties
application.properties
1 | server.port=8080 |
yml/yaml
application.yml/application.yaml
语法:
- 大小写敏感
- 数据值前面必须有空格作为分隔符
- 缩进不能使用Tab键用空格
- 使用缩进表示层级关系
- #表示注释
数据格式
:
对象(map):键值对的集合
1
2
3
4
5
6user:
name: xiamu
age: 22
address:
- beijing
- shanghai参数引用
1
2
3name: xiamu
user:
name: ${name}
数组:一组按次序排列的值
1
2
3address:
- beijing
- shanghai纯量:单个的、不可再分的值
1
2msg: 'hello \n world' # 单引号忽略转义字符 (原样输出)
msg: "hello \n world" # 双引号识别转义字符 (换行输出)
1 | server: |
配置文件加载顺序优先级:properties > yml > yaml
对于同一个属性的配置,优先读取优先级最高的文件中该属性的配置信息。
配置文件数据获取
@Value注解
1 |
|
Environment对象
1 |
|
@ConfigurationProperties注解
1 |
|
profile
在开发SpringBoot应用时,程序会被安装到不同的环境下,例如:开发、测试、生产等。其中在不同的环境下,数据库地址,服务端口等等配置都不同,因此每次打包时都需要修改配置文件,这样及其麻烦,而profile功能就可以进行动态的配置切换。
profile配置方式:
- 多profile文件方式
- yml多文档方式
profile激活方法:
- 配置文件
- 虚拟机参数
- 命令行参数
配置方式
(多profile文件方式)
有三种不同环境的配置文件application-名称不限制
- application-dev.properties
- application-pro.properties
- application-test.properties
我们可以在application.properties文件中激活某个环境配置文件
1 | spring.profiles.active=dev |
或者将其写在同一个配置文件中(yml多文档方式) **—**分隔不同配置信息
1 |
|
激活方法
配置文件
1
2
3spring:
profiles:
active: dev1
spring.profiles.active=dev
虚拟机参数
VM options: -Dspring.profiles.active-dev
- 命令行参数
Program arguments: –spring.profiles.active=pro
- 打包方式

打包完后运行java jar包


这样就运行成功了,端口号为8080
可以使用一下命令来进行环境配置的切换
java -jar .\springboot-study-0.0.1-SNAPSHOT.jar –spring.profiles.active=dev
配置文件加载顺序
也可以在项目打包后,加载其他配置文件来运行项目
java -jar .\springboot-study-0.0.1-SNAPSHOT.jar –spring.config.location=配置文件路径
如果其他配置文件application.properties与jar包在同级目录下,则默认会被加载。
或者在项目target目录下新建一个config目录,则该目录下的配置文件也会被默认加载。
这种方式的好处有:当我们发现项目中的某些配置信息有误时,可以通过外部配置文件覆盖的方式来进行纠错。