Spring Boot (2) - 配置文件
程序员文章站
2022-07-15 08:06:53
...
1 SpringBoot配置文件类型和作用
-
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用
application.properties
或者application.yml(application.yaml)
进行配置。SpringBoot默认会从Resources目录下加载application.properties
或application.yml(application.yaml)
文件 -
其中,
application.properties
文件是键值对类型的文件,之前一直在使用,所以此处不在对properties文件的格式进行阐述。除了properties文件外,SpringBoot还可以使用yml文件进行配置。
2 application.yml
配置文件
- YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
- YML文件的扩展名可以使用
.yml
或者.yaml
。
2.1 yml配置文件的语法
2.1.1 配置普通数据
- 语法:
key: value
- 注意:value之前有一个空格
2.1.2 配置对象数据
- 语法:
key:
key1: value1
key2: value2
或者:
key: {key1: value1,key2: value2}
注意:key1前面的空格个数不限定,在yml语法中,相同缩进代表同一个级别
person:
name: haohao
age: 31
addr: beijing
#或者
person: {name: haohao,age: 31,addr: beijing}
2.1.3 配置Map数据
同上面的对象写法
2.1.4 配置数组(List、Set)数据
- 语法:
key:
- value1
- value2
或者:
key: [value1,value2]
city:
- beijing
- tianjin
- shanghai
- chongqing
#或者
city: [beijing,tianjin,shanghai,chongqing]
#集合中的元素是对象形式
student:
- name: zhangsan
age: 18
score: 100
- name: lisi
age: 28
score: 88
- name: wangwu
age: 38
score: 90
注意:value1与之间的 - 之间存在一个空格
3 配置文件与配置类的属性映射方式
3.1 注解@Value
映射
我们可以通过@Value
注解将配置文件中的值映射到一个Spring管理的Bean的字段上
- Controller
@Controller
public class QuickController {
@Value("${name}")
private String name;
@Value("${person.addr}")
private String addr;
@RequestMapping("/quick")
@ResponseBody
public String quick(){
return "name: " + name + " addr: " + addr;
}
}
3.2 使用注解@ConfigurationProperties
映射
<aaa@qq.com 的执行器的配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
@Controller
@ConfigurationProperties(prefix="person")
public class Quick3Controller {
private String name;
private String addr;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@RequestMapping("/quick3")
@ResponseBody
public String quick3(){
return "name: " + name + " addr: " + addr;
}
}
下一篇: django项目创建的步骤
推荐阅读
-
Spring Boot JPA如何把ORM统一起来
-
Spring Boot应用Docker化的步骤详解
-
Spring Boot与Kotlin 整合全文搜索引擎Elasticsearch的示例代码
-
spring boot springjpa 支持多个数据源的实例代码
-
Spring Boot 配置MySQL数据库重连的操作方法
-
Spring Boot快速入门教程
-
Spring Boot中使用LDAP来统一管理用户信息的示例
-
Spring Boot 数据校验@Valid+统一异常处理的实现
-
详解spring boot实现websocket
-
Spring boot中使用Spring-data-jpa方便快捷的访问数据库(推荐)