2.SpringBoot配置文件
配置文件格式
启动服务器默认的端口号是 8080,访问路径可以书写为
http://localhost:8080/books/1
在线上环境我们还是希望将端口号改为 80,这样在访问的时候就可以不写端口号了,如下
http://localhost/books/1
而 SpringBoot 程序如何修改呢?SpringBoot 提供了多种属性配置方式
application.propertiesserver.port=80application.ymlserver:
port: 81application.yamlserver:
port: 82
注意:
SpringBoot程序的配置文件名必须是application,只是后缀名不同而已。
环境准备
创建一个新工程 springboot_02_base_config 用来演示不同的配置文件,工程环境和入门案例一模一样,结构如下:

在该工程中的 com.itheima.controller 包下创建一个名为 BookController 的控制器。内容如下:
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println("id ==> "+id);
return "hello , spring boot!";
}
}
不同配置文件演示
application.properties配置文件
现在需要进行配置,配合文件必须放在 resources 目录下,而该目录下有一个名为 application.properties 的配置文件,我们就可以在该配置文件中修改端口号,在该配置文件中书写 port ,Idea 就会提示,如下

application.properties 配置文件内容如下:
server.port=80
启动服务,会在控制台打印出日志信息,从日志信息中可以看到绑定的端口号已经修改了

application.yml配置文件
删除 application.properties 配置文件中的内容。在 resources 下创建一个名为 application.yml 的配置文件,在该文件中书写端口号的配置项,格式如下:
server:
port: 81
注意:
:后,数据前一定要加空格。
而在 yml 配置文件中也是有提示功能的,我们也可以在该文件中书写 port ,然后 idea 就会提示并书写成上面的格式

application.yaml配置文件
删除 application.yml 配置文件和 application.properties 配置文件内容,然后在 resources 下创建名为 application.yaml 的配置文件,配置内容和后缀名为 yml 的配置文件中的内容相同,只是使用了不同的后缀名而已
application.yaml 配置文件内容如下:
server:
port: 83
启动服务,在控制台可以看到绑定的端口号

三种配合文件的优先级
在三种配合文件中分别配置不同的端口号,启动服务查看绑定的端口号。用这种方式就可以看到哪个配置文件的优先级更高一些
application.properties 文件内容如下:
server.port=80
application.yml 文件内容如下:
server:
port: 81
application.yaml 文件内容如下:
server:
port: 82
启动服务,在控制台可以看到使用的端口号是 80。说明 application.properties 的优先级最高
注释掉 application.properties 配置文件内容。再次启动服务,在控制台可以看到使用的端口号是 81,说明 application.yml 配置文件为第二优先级。
三种配置文件的优先级是:
application.properties > application.yml > application.yaml
注意:
SpringBoot核心配置文件名为applicationSpringBoot内置属性过多,且所有属性集中在一起修改,在使用时,通过提示键+关键字修改属性 例如要设置日志的级别时,可以在配置文件中书写 **logging,就会提示出来。配置内容如下logging:
level:
root: info
yaml格式
上面讲了三种不同类型的配置文件,而 properties 类型的配合文件之前我们学习过,接下来我们重点学习 yaml 类型的配置文件。
YAML(YAML Ain't Markup Language),一种数据序列化格式。这种格式的配置文件在近些年已经占有主导地位,那么这种配置文件和前期使用的配置文件是有一些优势的,我们先看之前使用的配置文件。
最开始我们使用的是 xml ,格式如下:
<enterprise>
<name>itcast</name>
<age>16</age>
<tel>4006184000</tel>
</enterprise>
而 properties 类型的配置文件如下
enterprise.name=itcast
enterprise.age=16
enterprise.tel=4006184000
yaml 类型的配置文件内容如下
enterprise:
name: itcast
age: 16
tel: 4006184000
优点:
- 容易阅读
yaml类型的配置文件比xml类型的配置文件更容易阅读,结构更加清晰
- 容易与脚本语言交互
- 以数据为核心,重数据轻格式
yaml更注重数据,而xml更注重格式
YAML 文件扩展名:
.yml(主流).yaml
上面两种后缀名都可以,以后使用更多的还是 yml 的。
语法规则
- 大小写敏感
- 属性层级关系使用多行描述,每行结尾使用冒号结束
- 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键) 空格的个数并不重要,只要保证同层级的左侧对齐即可。
- 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
- #表示注释
数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔,例如
enterprise:
name: itcast
age: 16
tel: 4006184000
subject:
- Java
- 前端
- 大数据
yaml配置文件数据读取
环境准备
新创建一个名为 springboot_03_read_data 的 SpringBoot 工程,目录结构如下

在 com.itheima.controller 包写创建名为 BookController 的控制器,内容如下
@RestController
@RequestMapping("/books")
public class BookController {
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println("id ==> "+id);
return "hello , spring boot!";
}
}
在 com.itheima.domain 包下创建一个名为 Enterprise 的实体类等会用来封装数据,内容如下
public class Enterprise {
private String name;
private int age;
private String tel;
private String[] subject;
//setter and getter
//toString
}
在 resources 下创建一个名为 application.yml 的配置文件,里面配置了不同的数据,内容如下
lesson: SpringBoot
server:
port: 80
enterprise:
name: itcast
age: 16
tel: 4006184000
subject:
- Java
- 前端
- 大数据