spirng-boot学习日记02----配置以及单元测试

spring boot配置文件

在resource文件下存在配置文件

application.properties 或者

application.yml

作用:修改springboot自动配置的默认值

@SpringBootApplication 已经帮我们做了很多配置文件的处理,也给了很多默认值,比如tomcat 8080端口等

主要学习yml

以数据为中心

如:

server:

port:8088

yml语法:

1基本语法

k:(空格)v 空格是必须的

层级关系:根据左对齐规则,同一个缩进表示同一级

如:

server:

  port: 8088

  path: /hello

表示port和path是同属于server

 

普通值:数字、字符串、布尔

k: v直接写

注意:字符串不用加单引号或双引号,如果使用了双引号,则表示不需要转义里面的特殊字符,单引号则会转移里面的特殊字符

 

Map:

根据缩进行k:v表达所属关系

a:

  aa: fsadf

  ab: dfsafew

b:

  ba: fewaf

  bb: fadfaf

或者行内写法 a: {aa: sdfafsa,ab: fasdf4e}

数组:

用-表示数组中的一个元素

如:

animal:

 -cat

 -dog

或者一行写法如: animal: (空格)[cat,dog]  中间用逗号分隔

 

例子:

比如我编写的配置文件如下:

testDto:
 name: dengwj
 chinese: true
 age: 24
 info:
  info1: 12
  info2: 13
  info3: fdaf
 birth: 2019/04/18
 info1: [12,54,97,3344]

表示我有一个实体类,分别有name、chinese、age、info、birth、info1属性

编写实体类

public class TestDto {
    private String name;
    private Boolean chinese;
    private Integer age;
    private Map info;
    private Date birth;
    private List info1;

    public String getName() {
        return name;
    }

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

    public Boolean getChinese() {
        return chinese;
    }

    public void setChinese(Boolean chinese) {
        this.chinese = chinese;
    }

    public Integer getAge() {
        return age;
    }

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

    public Map getInfo() {
        return info;
    }

    public void setInfo(Map info) {
        this.info = info;
    }

    public Date getBirth() {
        return birth;
    }

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

    public List getInfo1() {
        return info1;
    }

    public void setInfo1(List info1) {
        this.info1 = info1;
    }

    @Override
    public String toString() {
        return "TestDto{" +
                "name='" + name + '\'' +
                ", chinese=" + chinese +
                ", age=" + age +
                ", info=" + info +
                ", birth=" + birth +
                ", info1=" + info1 +
                '}';
    }
}

写完之后在类上添加注解

@ConfigurationProperties(prefix = "testDto")

表示读取配置文件,而prefix则表示要读取testDto节点

添加该依赖


    org.springframework.boot
    spring-boot-configuration-processor
    true

在写配置文件的时候可以提示对应实体类属性名称.

这里值得注意的是,这个实例必须是springboot容器管理的,才能使用,所以还要添加注解

@Component

 

2:单元测试,看看是否能读取配置文件信息

编写单元测试类(前提是已经依赖了单元测试


    org.springframework.boot
    spring-boot-starter-test
    test

 

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringBootMain.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class FirstTest {
    @Autowired
    private  TestDto dto;
    @Test
    public void test(){
        System.out.println(dto.toString());

    }
}

需要注意添加 @RunWith(SpringRunner.class)使用的是SpringRunner而非JUnit

@SpringBootTest(classes = SpringBootMain.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)

classes属性为main程序源文件

 

结果

TestDto{name='dengwj', chinese=true, age=24, info={info1=12, info2=13, info3=fdaf}, birth=Thu Apr 18 00:00:00 CST 2019, info1=[12, 54, 97, 3344]}

 

 

你可能感兴趣的:(spring,boot)