1.springboot配置文件类型
springboot是基于约定的,所以很多配置都有默认值,如果想使用自己的配置替换默认值,可以用application.properties或者application.yml(application.yaml)进行配置。其中application.properties是键值对类型的文件。
如果properties和yml同时配置了port,会优先选properties的配置。
2.yml配置文件
yml文件格式是yaml编写的文件格式。yaml是一种直观的能被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互,可以被支持yaml库的不同编程语言程序导入,比如:C/C++,python,PHP,C#等。yml文件是以数据为核心的,比传统xml方式更加简洁。
3.通过@Value映射数据
文件:application.properties
#服务器端口号
server.port=8080
#当前web应用的名称
server.servlet.context-path=/demo
文件:application.yml
#普通数据的配置
name: zhangsan
#对象的配置
person:
name: zhangsan
age: 18
addr: beijing
#行内对象配置
#person: {name: zhangsan,age: 18,addr: beijing}
#yml和properties同时定义port时,优先选properties里的。
server:
port: 8081
#配置数组、集合(普通字符串)
city:
- beijing
- tianjin
- shanghai
#city: [beijing,tianjin,shanghai]
#配置数组、集合(对象数据)
student:
- name: tom
age: 18
addr: beijing
- name: lucy
age: 17
addr: tianjin
#student: [{name: tom,age: 18,addr: beijing},{name: lucy,age: 17,addr: tianjin}]
#Map配置
map:
key1: value1
key2: value2
@RestController
public class QuickController2 {
@Value("${name}")
private String name;
@Value("${person.addr}")
private String addr;
@RequestMapping("/quick2")
public String quick2() {
System.out.println(name);
//获得配置文件的信息
return "name=" + name + ",addr=" + addr;
}
}
文件:pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--所有的springboot工程都必须继承起步依赖spring-boot-starter-parent-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<groupId>com.tiheima</groupId>
<artifactId>springboot_quick</artifactId>
<version>1.0-SNAPSHOT</version>
<!--SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖-->
<dependencies>
<!--web功能的起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--热部署(修改后不重启就能生效)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--@ConfigurationProperties的执行器的配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
运行:localhost:8080/demo/quick2
4.通过@ConfigurationProperties映射数据
@RestController
@ConfigurationProperties(prefix = "person")
public class QuickController3 {
private String name;
private String addr;
@RequestMapping("/quick3")
public String quick2() {
System.out.println(name);
//获得配置文件的信息
return "name=" + name + ",addr=" + 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;
}
}
运行:localhost:8080/demo/quick3