当前位置: 首页 > 工具软件 > yuml-diagram > 使用案例 >

Spring boot的配置文件:yuml

赫连卓
2023-12-01

一、yum配置文件的简单介绍

  在resources目录下,可以放入spring boot的全局配置文件。spring boot全局配置文件的命名默认如下:

  • application.properties
  • application.yml

配置文件的作用:修改SpringBoot自动配置的默认值。

什么是yum文件?

YAML(YAML Ain’t Markup Language)

  • YAML A Markup Language:是一个标记语言
  • YAML isn’t Markup Language:不是一个标记语言

以数据为中心,比json、xml等更适合做配置文件

yuml文件例子:

server:
  port: 8888

以前使用xml配置文件的配置

<server>
     <port>8888</port>
</server>

二、yuml文件的基本语法

1、基本语法

  • 以键值对的形式,但注意k与v之间有空格。如:K:(空格)V
  • 以空格的缩进来控制层级关系。只要是左对齐的一列数据,都属于同一级
    例如:
server:
  port: 8888
  path: /hello

port与path都是属于server下的同一级

2、几种值的书写方式

2.1 字面量(普通的值,如:数字、字符串、布尔值)

k: v——字面量

注意:
1)字符串默认不用加上单引号或者双引号
2) “”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思。例如: name: “zhangsan \n lisi”  输出;zhangsan 换行 lisi
3) ''单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据 。例如:name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

2.2 对象、Map(以键值对的形式)

k: v——在下一行来写对象的属性和值的关系;需要注意缩进

person:
 name: zhangsan
 age: 100

行内写法:

persion: {name: zhangsan,age: 100}

2.3 数组(List、Set)

-(空格)值来表示

animals:
 - cat
 - tiger
 - lion

行内写法

animals: [cat,tiger,lion]

3、配置文件属性注入Bean对象

1)yuml配置文件(application.yml):

person:
  name: zhangsan
  age: 28
  isBoss: false
  map: {k1: admin,k2: 123}
  list:
    - kkk
    - admin
    - 130
  dog:
    name: Petty
    age: 5
  birth: 1990/12/30

2、javaBean对象:

Person类:

/**
 * @ConfigurationProperties(prefix = "person") :告诉spring将本类中的所有属性和配置文件中的相关配置进行绑定
 * 其中,prefix = "person"用来指定对配置文件中哪个下面的所有属性进行一一映射
 *
 * 必须将Bean对象加入到容器中
 *
 * @PropertySource(value = "classpath:application.yml") 加载指定yaml文件的配置,默认路径为./src/main/resources
 **/

@Component
@PropertySource(value = "classpath:application.yml")
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private int age;
    private boolean isBoss;
    private Map<String,Object> map;
    private List<Object> list;
    private Dog dog;
    private Date birth;

   public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean isBoss() {
        return isBoss;
    }

    public void setBoss(boolean boss) {
        isBoss = boss;
    }

    public Map<String, Object> getMap() {
        return map;
    }

    public void setMap(Map<String, Object> map) {
        this.map = map;
    }

    public List<Object> getList() {
        return list;
    }

    public void setList(List<Object> list) {
        this.list = list;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", isBoss=" + isBoss +
                ", map=" + map +
                ", list=" + list +
                ", dog=" + dog +
                ", birth=" + birth +
                '}';
    }
}

Dog对象:

public class Dog {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

注意
1)javaBean对象中,getter/setter方法不能少。
2)在需要进行属性注入的JavaBean上,需要添加两个注解:
  @Component 将Bean对象装配到容器中。只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能。
  @ConfigurationProperties(prefix = “person”) :告诉spring将本类中的所有属性和配置文件中的相关配置进行绑定。其中,prefix = “person” 用来指定对配置文件中哪个下面的所有属性进行一一映射。

3、在pom.xml文件中导入配置文件处理器

  <!--导入配置文件处理器,在编写配置文件时就会提示 在pom.xml-->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-configuration-processor</artifactId>
         <optional>true</optional>
     </dependency>

4、Spring junit单元测试

import com.zm.bean.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/* *
 * @description //TODO spring boot的单元测试
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootQuickstartApplicationTests {

    @Autowired
    Person p;

    @Test
    public void testOne(){
        System.out.println(p);
    }

}

注意:
1)测试类必须是public的。
2)测试方法必须是public的。
3)@Test应用的包为 org.junit.Test
4)在测试类前,需要加上:

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootQuickstartApplicationTests {
 类似资料: