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、 数据类型

      image.png

      2.3、 实例代码

      (1)创建类Person,并且配置注解@Component和@ConfigurationProperties
      注解解释:
      @Component:可以注入组件到容器,
      @ConfigurationProperties:和application.properties或者application.yaml或application.yml进行绑定
      1. @Component
      2. @ConfigurationProperties(prefix = "person")
      3. public class Person {
      4. private String userName;
      5. private Boolean boss;
      6. private Date birth;
      7. private Integer age;
      8. private User user;
      9. private String[] interests;
      10. private List<String> animal;
      11. private Map<String,Object> score;
      12. private Set<Double> salarys;
      13. private Map<String,List<User>> allUsers;
      14. }
      (2)在包根路径下创建application.yml文件 ```yaml person:

      不加引号 不会转义特殊字符

      userName: 红领巾 \n 李四

      单引号 不会转义特殊字符

      userName1: ‘红领巾1 \n 李四’

      双引号 会转义特殊字符

      userName2: “红领巾2 \n 李四” boss: false birth: 2021/10/10 age: 20 user: username: 张三 age: 10

      interests: [篮球,足球]

      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>

然后重新启动一下我们的项目重新运行就可以了
image.png

另外我们引入的这个包 其实只在开发阶段有用,在我们运行期间是没有作用的,所以我们可以使用我们的打包插件排除掉当前包

    <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>