Spring Boot开发之配置文件

1 文件类型

1 properties

同以前的properties用法.

如常见的数据库连接配置文件: jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8
jdbc.username=root
jdbc.password=root

读取配置文件

    @Test
    public void test1() throws IOException {
    
    
        InputStream inputStream = this.getClass().getResourceAsStream("jdbc.properties");
        Properties properties = new Properties();
        properties.load(inputStream);
        properties.list(System.out);
        System.out.println("==============================================");
        String property = properties.getProperty("jdbc.url");
        System.out.println("property = " + property);
    }

2 yaml

1 说明

YAML 是 "YAML Ain’t Markup LanguageM (YAML 不是一种标记语言)的递归缩写。在开发 的这种语言时,YAML 的意思其实是:“Yet Another Markup Language” (仍是一种标记语 言)。

非常适合用来做以数据为中心的配置文件

2 语法

  • key: value; kv之间有空格
  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab, 只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • #表示注释
  • 字符串无需加引号,如果要加,“与” M表示字符串内容会被转义/不转义

3 数据类型

  • 字面量:单个的、不可再分的值。date、boolean、string、number、nul
k: v
  • 对象:键值对的集合。map、 hash、set、object
# 行内写法: 
k: {
    
    kl:vl,k2:v2,k3:v3}
# 或者
k:
    kl: vl
    k2: v2
    k3: v3
  • 数组:一组按次序排列的值。array、list、queue
# 行内写法: 
k: {
    
    vl,v2,v3}
# 或者
k:
    - vl
    - v2
    - v3

4 案例

@Data
public class Person {
    
    

    private String userName;
    private Boolean boss;
    private Date birth;
    private Integer age;
    private Pet pet;
    private String[] interests;
    private List<String> animal;
    private Map<String,Object〉score;
    private Set<Double> salarys;
    private Map<StringJ List<Pet>> allPets;
}
    
@Data
public class Pet {
    
    
    private String name;
    private Double weight;
}

对应配置文件:

# yaml表示以上对象
person:
    userName: zhangsan
    boss: false
    birth: 2019/12/12 20:12:33
    age: 18
    pet:
      name: tomcat
      weight: 23.4
    interests: [篮球,游泳]
    animal:
         - jerry
         - mario
    score:
        english:
            first: 30
            second: 40
            third: 50
        math: [131,140,148]
        Chinese: {
    
    first: 128,second: 136}
    salarys: [3999,4999.98,5999.99]
    allPets:
        sick:
            - {
    
    name: tom}
            - {
    
    name: jerry,weight: 47}
        health:[{
    
    name: mario,weight: 47}]

3 配置提示

自定义的类和配置文件绑定一般没有提示. 可通过添加依赖,来增加提示.

<dependency>
    <groupId>org.springframework.boot</groupId >
    <artifactId>spring-boot-configuration-processors/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</gnoupId>
                <artifactId >spring- boot-configuration-processors</artifactId>
            </exclude>
        </excludes>
        </configuration>
    </plugin>
    </plugins>
 </build>

猜你喜欢

转载自blog.csdn.net/ABestRookie/article/details/127353630
今日推荐