1、YAML语法:
1.基本语法:k:(空格)v :表示一对键值对。值的字面量写法:普通的值(数字,字符串,布尔);k:(空格)v:字符串默认不用加上单引号或者双引号;"" :双引号;不会转义字符里面的特殊字符;' ' :单引号;会转义特殊字符。
2.对象、Map(属性和值) ( 键值对) :k:(空格)v :在一行来写对象的属性和值的关系。
3.数组(List、Set) :用-(空格)值表示数组中的一个元素。
person:
lastName: zhangsan
age: 18
boss: false
birth: 2000-2-2
maps: {k1: v1,k2: 12}
lists:
- lisi
- zhaoliu
dog:
name: 小狗
age: 12
2、pom.xml:pom是项目对象模型是Maven中的项目文件,可用于管理与配置依赖,组织信息,项目授权,远程仓库等。一个Maven项目,可以没有任何代码,但不能没有pom.xml。
1. <project>是pom.xml的根元素,包含了一些约束信息。
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
</project>
2. <modelVersion>pom的版本,不能忽略。
<modelVersion>4.0.0</modelVersion>
3. <groupId>,<artifactId>与<version>标识了仓库中的一个特定位置,叫项目坐标。<groupId>表示项目所属的组,通常是一个公司或者组织的名称。<artifactId>表示项目的唯一标识。<version>表示项目的版本号。<packaging>打包类型,常见的有jar与war,没有提供的话默认值为jar。依赖放在<dependencies>。<groupId>与<artifactId>对应项目坐标。<version>版本。<type>对应的依赖类型,默认为jar。<optional>标记依赖的可选状态。<parent>指定需要继承的pom。<plugins>下包含了若干个<plugin>,表示插件。
3、@ConfigurationProperties和@Value都是Spring提供的用于从配置文件注入配置信息的方式,@Value是Spring的底层注解,@ConfigurationProperties批量注入配置文件中的属性,@Value需要一个个指定。
@Component
@ConfigurationProperties(prefix = "person") //prefix ="person":配置文件中哪个下面的所有属性进行一一映射
public class Person {
@Value("${person.lastName}")
private String lastName;
@Value("#{10*2}")
private Integer age;
@Value("true")
private Boolean boss;
@Override
public String toString() {
return "Person [lastName=" + lastName + ", age=" + age + ", boss=" + boss + "]";
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Boolean getBoss() {
return boss;
}
public void setBoss(Boolean boss) {
this.boss = boss;
}
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot02ConfigApplicationTests {
Person person;
@Test
public void contextLoads() {
System.out.println(person);
}
}