目录
1. 什么是SpringBoot
Spring的诞生是为了简化java程序的开发,SpringBoot的但是我能够是为了简化Spring程序开发的。 SpringBoot就是Spring程序开发的脚手架,为了可以快速进行开发Spring程序。
1.1 使用SpringBoot的优点
- 快速集成框架,SpringBoot提供自动添加依赖的功能,用于快速集成框架
- 内置运行器,无须配置Tomcat等Web容器,直接运行和部署程序
- 快熟部署项目,无须外联容器即可运行和启动项目
- 可以去掉繁琐的xml文件,使用注解和配置的方式进行开发
- 支撑更多的监控指标,可以更好的了解项目的运行情况。
2. 创建SpringBoot项目
(1)通过Idea的方式创建:如果idea为社区版,需要下载插件SpringBoot 的helper。如果是专业版则不需要考虑。
(2)通过网页的方式创建,通过https://start.spring.io进入主页就可以进行springboot项目的创建。
根据idea创建SpringBoot项目流程(专业版):
这样一个简单的SpringBoot项目就创建完成了。对应项目下的文件包如下所示:
出现对应的运行时间,且项目不会停止,代表SpringBoot项目运行成功,运行结果如下:
根据网页版创建项目,如下所示:
3. SpringBoot项目的使用
3.1 SpringBoot的配置文件
3.1.1 配置文件的作用
- (1)整个项目中所有重要的数据都是在配置文件当中配置的,例如:
- (2)数据库的连接信息(包含用户名和密码设置)
- (3)项目启动端口
- (4)第三方系统的调用秘钥等信息
- (5)用于发现和定位问题的普通日志和异常日志
3.1.2 配置文件的格式
SpringBoot配置文件主要分为以下两种格式:
- .properties
- .yml
前提是所有的配置问件都要以application开头且.properties的配置文件的优先级大于.yml。
特殊说明:
1.理论上讲 properties 可以和 yml ⼀起存在于⼀个项⽬当中,当 properties 和 yml ⼀起存在⼀个项⽬中时,如果配置⽂件中出现了同样的配置,⽐如 properties 和 yml 中都配置了“server.port”,那么这个时候会以 properties 中的配置为主,也就是 .properties 配置⽂件的优先级最⾼,但加载完 .properties ⽂件之后,也会加载 .yml ⽂件的配置信息。
2. 虽然理论上来讲 .properties 可以和 .yml 共存,但实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式,这样可以更好的维护(降低故障率)。
3.1.3 properties 配置文件说明
properties 配置⽂件是最早期的配置⽂件格式,也是创建 Spring Boot 项⽬默认的配置⽂件
(1)properties 基本语法:properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的。
#.properties的配置文件的优先级大于.yml
server.port = 8083
#配置MySQL
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/myblog
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
(2)读取配置文件
如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤ @Value 注解来实现。 @Value 注解使用“${}”的格式读取,如下代码所示:
(3)properties 优缺点分析
properties 配置是以 key-value 的形式配置的,如下图所示:
从上述配置key看出,properties 配置⽂件中会有很多的冗余的信息,⽐如这些:
想要解决这个问题,就可以使⽤ yml 配置⽂件的格式化了。
优点:配置文件结构清晰:key-value 的形式配置的
缺点:写法较为繁琐,文件路径必须齐全
(4)自定义配置文件
在properties 配置文件中根据配置项描述规范,编写自定义配置项,并在对应的controller层中调用。
执行结果:
3.1.4 yml 配置文件说明
yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语言”。
yml 优点分析:
- yml 是⼀个可读性高,写法简单、易于理解,它的语法和 JSON 语言类似。
- yml 支持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使 用空白符号缩进和⼤量依赖外观的特色,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
- yml 支持更多的编程语言,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、
- JavaScript、Perl 中
(1) yml 基本语法
yml 是树形结构的配置文件,它的基础语法是“key: value”,注意 key 和 value 之间使用英文冒号加空格的方式组成的,其中的空格不可省略。
server:
port: 8083
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/myblog
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
(2)yml 使用进阶
yml 配置不同数据类型及 null。
# 字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制
# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法
# Null,~代表null
null.value: ~
(3)yml 配置读取
yml 读取配置的方式和 properties 相同,使⽤ @Value 注解即可。
(4)自定义配置项
在yml配置文件中根据配置项描述规范,编写自定义配置项,并在对应的controller层中调用。
在对应的model层中编写含有以上属性的对象User,并在其中设置对应的getter和setter方法,同时设置对应的toString()方法,在controller层中通过调用对象,实现读取自定义对象。除了可以使用@Value 注解使用“${}”的格式读取自定义对象属性,还可以使用@Autowired注解通过对象调用。
使用@Value 注解使用“${}”的格式读取自定义对象属性:
执行结果:
使用@Autowired注解通过对象调用:
执行结果:
注意:在调用对象去读取自定义配置项时,要在对应的实体类之中添加注解 @ConfigurationProperties(),对应的括号中添加自定义配置项的名称,用来确定访问配置对象的范围,该注解必须配合五大类注解一起使用。