springboot默认会使用两种格式的配置文件作为全局配置文件:
修改springboot自动配置的默认值,例如修改端口号等。
src/main/resources/目录下或者类路径/config目录下。
yml格式全程为:YAML(YAML Ain't Markup Language),翻译过来就是YAML既是一种标记语言,又不是一种标记语言;
YAML是一种以数据为中心的语言,比json,xml更适合做配置文件。
key:(空格) value 来表示一个键值对的,但是冒号之后的空格一定不能少;
以空格的缩进来表示层级关系,即只要是左对齐的列都是属于同一层级的;
eg:
server:
port: 8080
path: /hello
此时的port和path是属于同一层级的,都是属于server下的。
注:属性和属性值都是对大小写敏感的,且每句话的结尾没有分号,不需要任何符号;并且是在英文输入法的状态下。
1.字面量:数字,字符串,布尔值等:
key: (空格) value 如上述例子,但是需要注意的是——字符串类型是默认不用加上双引号或者单引号的,在yml格式中,双引号和单引号都有各自不同的含义。
" "(双引号):在双引号里面的字符串若含有特殊字符是会被转义的。如:”/n“是会进行换行的。
' '(单引号):在单引号里面的字符是不会将含有特殊字符进行转义的。如:'/n'是不会进行换行的,打印出来仍是/n。
2.对象、Map(属性-值这样键值对形式得):
直接在下一行些该对象属性和值的关系,例如:
第一种写法:
student:
name: zhangsan
age: 22
第二种写法,也称为行内写法:
student: {name: zhangsan,age: 22}
但是均需要注意空格和缩行。
3.数组(List,Set):
用- 值表示数组中的一个元素;例如:
第一种方法(需注意空格和缩进):
colors:
- red
- black
- yellow
- green
第二种方法,即行内方式:
colors: [red,black,yellow,green]
1.创建一个简单的springboot maven项目
pom文件:
4.0.0
com.yangli
springbootstudy04
0.0.1-SNAPSHOT
jar
springbootstudy04
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
2.0.3.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-configuration-processor
true
org.springframework.boot
spring-boot-maven-plugin
Java实体类Person:
package com.yangli.springbootstudy04.doman;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* Created with IntelliJ IDEA.
* Description: @ConfigurationProperties(prefix = "person")表示这个类可以在配置文件中获取值,
* prefix = "person"表示:获取值得key是person
* @Component表示需要将这个类注入到springboot容器中进行管理
* User: yangli
* Date: 2018-10-14
* Time: 14:54
*/
@ConfigurationProperties(prefix = "person")
@Component
public class Person {
private String personName;
private Integer age;
private Boolean student;//是否是学生
private Map map;
private List
Java实体类Pet:
package com.yangli.springbootstudy04.doman;
/**
* Created with IntelliJ IDEA.
* Description:
* User: yangli
* Date: 2018-10-14
* Time: 14:56
*/
public class Pet {
private String petName;
private String brand;
public String getPetName() {
return petName;
}
public void setPetName(String petName) {
this.petName = petName;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
@Override
public String toString() {
return "Pet{" +
"petName='" + petName + '\'' +
", brand='" + brand + '\'' +
'}';
}
}
yml配置文件:
server:
port: 8081
person:
personName: 亚历山大
age: 25
student: true
map: {wife: 伊丽莎白,add: 埃及}
list:
- red
- blue
- haha
pet:
petName: SB
brand: 二哈
测试类:
package com.yangli.springbootstudy04;
import com.yangli.springbootstudy04.doman.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class Springbootstudy04ApplicationTests {
@Autowired
private Person person;
@Test
public void contextLoads() {
System.err.println(person);
}
}
控制台打印的结果:
注:布尔类型的变量名最好不要使用is开头,否则难以识明,在yml文件中写值得时候,其底部是会有提示的-- >