1、文件类型
1.1、properties
同以前的properties用法
1.2、yaml
1.2.1、简介
YAML是 Yaml Ain`t Markup Language (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML的意思其实是:”Yet Another Markup language“ (仍是一种标记语言)。
非常适合用来做以数据为中心的配置文件
2.2.2、基本语法
- key:value;kv之间有空格
- 大小写敏感
- 使用缩进表示层级关系
- 缩进不允许使用tag,只允许空格
- 缩进的空格数不重要,只要相同层级的元素左对齐即可
- ‘#’表示注释
- 字符串可加引号也可不加引号,
- 不加引号:不转义特殊字符
- 单引号:不转义特殊字符
- 双引号:转义特殊字符
2.2.3、 数据类型
2.3、 实例代码
(1)创建类Person,并且配置注解@Component和@ConfigurationProperties
注解解释:
@Component:可以注入组件到容器,
@ConfigurationProperties:和application.properties或者application.yaml或application.yml进行绑定
(2)在包根路径下创建application.yml文件 ```yaml person:@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private User user;
private String[] interests;
private List<String> animal;
private Map<String,Object> score;
private Set<Double> salarys;
private Map<String,List<User>> allUsers;
}
不加引号 不会转义特殊字符
userName: 红领巾 \n 李四单引号 不会转义特殊字符
userName1: ‘红领巾1 \n 李四’双引号 会转义特殊字符
userName2: “红领巾2 \n 李四” boss: false birth: 2021/10/10 age: 20 user: username: 张三 age: 10interests: [篮球,足球]
interests:- 篮球
- 足球 animal: [老鼠,小猫] score: {english: 90,yuwen: 100} salarys:
- 999.9
- 20.1
allUsers:
name:
- {username: 小名,age: 11}
- username: 小红 age: 12
- username: 小白 age: 13 tmps:
- username: 小丁 age: 20
(3)测试打印参数
```java
@SpringBootApplication
public class SpringBoot1Application {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(SpringBoot1Application.class, args);
Person bean = run.getBean(Person.class);
System.out.println(bean.toString());
}
}
结果:
Person(userName=红领巾 \n 李四, userName1=红领巾1 \n 李四, userName2=红领巾2
李四, boss=false, birth=Sun Oct 10 00:00:00 CST 2021, age=20, user=User(username=张三, age=10), interests=[篮球, 足球], animal=[老鼠, 小猫], score={english=90, yuwen=100}, salarys=[999.9, 20.1], allUsers={name=[User(username=小名, age=11), User(username=小红, age=12), User(username=小白, age=13)], tmps=[User(username=小丁, age=20)]})
3.4、配置注释处理器
系统的配置都会有提示,如果我们自己写的也想有提示的话可以引入一个包进行增加提示
要使用处理器,请包含对spring-boot-configuration-processor
.
对于 Maven,依赖项应声明为可选,如下例所示:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
然后重新启动一下我们的项目重新运行就可以了
另外我们引入的这个包 其实只在开发阶段有用,在我们运行期间是没有作用的,所以我们可以使用我们的打包插件排除掉当前包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>