Spring Boot application、bootstrap 配置文件乱码、警告等问题

以下问题在 bootstrap.ymlapplication.yml 雷同

为什么 application.yml 会乱码? {id=garbled-code}

  1. application.properties 编码为 ISO-8859-1,请勿将 application.properties 文件重命名为 application.yml
    1. 虽然 application.yml 默认编码为 UTF-8,但是重命名文件不会修改文件编码
    2. 如需将 application.yml 替换 application.properties,应该是新建一个 application.yml 文件,
      然后把 application.properties 中的文件复制到 application.yml 中,最后删除 application.properties 文件
    3. 通过新建 application.yml 替换并删除 application.properties 时,同一次提交这两个文件时,git 会自动识别为文件名修改

为什么 application 配置文件的配置会出现黄色警告线?{id=yellow-warn}

  1. 如果该配置使用的是 @ConfigurationProperties 注解在类中配置的,
    请添加依赖 org.springframework.boot:spring-boot-configuration-processor

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>
    
    1. 该依赖在项目编译后,会生成 target/classes/META-INF/spring-configuration-metadata.json 文件
    2. 该依赖在项目打包后,会生成 xxx-*.*.*.jar/!/META-INF/spring-configuration-metadata.json 文件
    3. 文件 META-INF/spring-configuration-metadata.json 作用就是在
      application.propertiesapplication.ymlbootstrap.yml 文件中自动提示的依据
    4. 配置的属性如果没有在 spring-configuration-metadata.json 文件中配置,将会出现警告
  2. 如果该配置使用的是 @Value 读取自定义配置文件,则会出现黄色警告线,推荐使用 @ConfigurationProperties 方式