Python 官方文档:入门教程 => 点击学习
目录一、YAML 简介1、什么是 YAML ?2、优点3、扩展名4、语法规则5、格式二、三种配置文件1、properties 类型2、yml 类型3、yaml 类型4、优先级三、YA
server:
port: 80
切记:属性值前面必须有一个空格。
port 是 server 下的一个属性,根据属性层级之间使用多行描述,以及使用缩进表示的规则,port 的书写位置如上所示,但一般情况下,这种格式我们无需过多纠结,我们回车换行后自动提供的格式一般都是正确的。 6、数组数据
name: 准Java全栈开发工程师
server:
port: 80
# 数组格式
likes:
- game
- movie
- music
数组数据的属性值换行书写,以 “-” 减号开头,注意属性值前空格,如上述 likes 所示。
以配置端口号为例,介绍三种配置文件及其格式。
在未接触到 yaml 之前,我们的配置文件大多数都是以 properties 结尾的文件。
server.port=80
格式为:属性名=属性值 。
这种方式还是非常常见的,我们之前在配置连接数据库相关信息的 jdbc.properties 文件也是使用的该方式。
server:
port: 81
将端口号设置为 81 。
yml 和 yaml 只是扩展名不同而已,其实是一种类型的配置文件。
server:
port: 82
当项目中同时存在上述三个配置文件时,用采用那个配置文件呢?我们可以通过观察端口号来获得优先级顺序。
有很多小伙伴反应,说在写 YAML 文件时,代码不提示。
没有代码提示功能,对我们开发还是造成了一定的影响的,下面就带着大家来解决这个问题。
首先进入到模块管理。
将 YAML 类型的两个配置文件添加。
选中创建的两个配置文件,完成后点击 “OK” 即可。
此时的配置文件已经变成了三个。
重新回到配置文件看是否实现了代码提示功能。
已经实现了代码提示功能,虽然是 YAML 文件,但是代码提示的还是按照 properties 类型进行的,并不影响,找到需要的属性直接回车后还是会呈现出 YAML 格式。
sourceName: SpringBoot
server:
port: 80
user:
name: 准Java全栈开发工程师
age: 22
likes:
- music
- game
- movie
@springBootTest
class DemoApplicationTests {
@Value("${sourceName}")
private String sourceName;
@Value("${server.port}")
private Integer port;
@Value("${user.likes[0]}")
private String likes;
@Test
void contextLoads() {
System.out.println(sourceName);
System.out.println(port);
System.out.println(likes);
}
}
将要读取的数据定义为属性,使用 @Value 注解读取配置文件中的数据并注入给属性,之后在方法体中可以直接使用。
@SpringBootTest
class DemoApplicationTests {
@Autowired
private Environment environment;
@Test
void contextLoads() {
System.out.println(environment.getProperty("sourceName"));
System.out.println(environment.getProperty("server.port"));
System.out.println(environment.getProperty("user.likes[0]"));
}
}
SpringBoot 提供有 Environment 对象,可以将配置文件中的所有数据都封装到该对象中,使用 getProperty 方法,将想要读取的数据名作为参数传入即可。
user:
name: 准Java全栈开发工程师
age: 22
likes:
- music
- game
- movie
对于配置类中的 user 数据,其下还有很多子层,如果我们想一下子将 user 的所有数据都取出,应该怎么做呢?将其封装为一个对象。
@Component // 将bean的创建工作交由Spring管理
// @ConfigurationProperties 注解表示加载配置文件
// 使用prefix前缀表示只加载指定前缀的数据
@ConfigurationProperties(prefix = "user")
public class User {
private String name;
private Integer age;
private Object[] likes;
// get、set、toString和构造器方法省略
}
和我们定义实体类没有太大的区别,只是这次不再是和数据库表中的字段对应,而是和配置文件中定义的数据对应。
除此之外,还需要使用 ConfigurationProperties 注解加载配置文件,使用 prefix 指定加载数据的前缀。
@SpringBootTest
class DemoApplicationTests {
@Autowired
private User user;
@Test
void contextLoads() {
System.out.println(user);
}
}
使用该方式在定义实体类时,会报红提示
我们只需要在 pom.xml 文件中导入相应的依赖即可。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
到此这篇关于SpringBoot中YAML配置文件的文章就介绍到这了,更多相关SpringBoot YAML配置文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: SpringBoot中YAML配置文件实例详解
本文链接: https://lsjlt.com/news/208566.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0