文章目录
前言
在springboot 项目中一般默认的配置文件是application.properties,但是实际项目中我们一般会使用application.yml 文件,下面就介绍一下在springboot 中读取 yml 配置的几种方式.
一、Yml文件规则及数据格式表示方式
key: value 格式书写
key 后面跟着冒号,再后面跟着一个空格,然后是值
- 普通类型(数字,字符串,布尔)
- 对象、Map
- 数组(List)
1、普通类型(数字,字符串,布尔)
age: 18
name: 小明
isright: true
注意:
字符串默认不用加上单引号或者双引号;
“”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi
‘’:单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi
2、对象、Map
k: v的方式
#方式一:
person:
name: 小强
age: 18
#方式二:
person: {name: 小qiang,age: 19 }
3、 数组(List)
用- 值表示数组中的一个元素,如:
myList:
- week1
- week2
- 18
二、获取YML文件内容
YML文件内容application.yml:
##自定义全局配置属性
mywebconfig:
name: xiaoqiang
age: 18
mail: qqqq@qq.com
Person:
code: 12345
name: pppp1
1.第一种:@Value方式
通过@Value获取配置属性赋值给配置类属性
@Data
@Configuration
//配置类
public class MyWebConfig {
@Value("${mywebconfig.name}")
private String name;
@Value("${mywebconfig.age}")
private Integer age;
@Value("${mywebconfig.mail}")
private String mail;
@Value("${mywebconfig.person}")
private Person person;
}
测试:
@Test
void myTest(){
System.out.println(
myWebConfig.getName()
);
}
2.第二种:@ConfigurationProperties
通过在配置类上添加@ConfigurationProperties注解绑定yml配置属性取值
@Data
@Configuration
@ConfigurationProperties(prefix = "mywebconfig")
public class MyWebConfig {
private String name;
private Integer age;
private String mail;
private Person person;
}
测试:
3.第三种:@Evnironment
使用原生方法直接获取配置类数据
@RestController
@RequestMapping("/deptment")
public class DeptMentController {
@Autowired
Environment env;
/**
* 通过环境变量注解获取YML属性值
* */
@RequestMapping("/getP")
public String getP() {
return env.getProperty("mywebconfig.Person.name" );
}
}
4.第四种:@PropertySource 结合@ConfigurationProperties 获取指定yml文件中的配置属性
注意:
SpringBoot的 @PropertySource 注解只支持加载 properties结尾的文件。
三、YML多环境配置设置
#多配置环境下,激活环境dev
spring:
profiles:
active: dev
---
#测试环境
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: gq861204.
driver-class-name: com.mysql.cj.jdbc.Driver
config:
activate:
on-profile: test
server:
port: 10088
---
#开发环境
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb?characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: gq861204.
driver-class-name: com.mysql.cj.jdbc.Driver
config:
activate:
on-profile: dev
server:
port: 10089
本文介绍了在Spring Boot项目中如何读取YML配置文件,包括YML的文件规则、数据格式,以及四种获取YML文件内容的方法:@Value、@ConfigurationProperties、@Environment和@PropertySource结合@ConfigurationProperties。同时,文章还提到了YML多环境配置的设置。

2万+

被折叠的 条评论
为什么被折叠?



