Java读取配置文件的信息及获取配置文件数据测试

108 阅读1分钟

测试代码如下,代码中有三种注入方式:

  取值方式: 1.@Value 单个取值   --适合少量取值
2.Evironment 对象批量取值   --适合很多数据注入
3.封装对象指定前缀取值     --适合某个对象取值

@RestController
@RequestMapping("/test")
public class TestController {

    /*
    取值方式:1.@Value 单个取值   --适合少量取值
    2.Evironment 对象批量取值   --适合很多数据注入
    3.封装对象指定前缀取值     --适合某个对象取值
     */

    @Value("${name}")
    private String name;

    @Value("${person.name}")
    private String name2;

    @Value("${person.age}")
    private String age;

    @Value("${address[0]}")
    private String address1;

    @Value("${msg1}")
    private String msg1;

    @Value("${msg2}")
    private String msg2;

    //方式二:批量取值
    @Autowired
    private Environment env;

    //方式三:通过bean对象取值,注入user对象
    @Autowired
    private Person person;

    @RequestMapping("/hello2")
    public String hello2(){
        System.out.println("name = " + name);
        System.out.println("name2 = " + name2);
        System.out.println("age = " + age);
        System.out.println("address1 = " + address1);
        System.out.println("msg1 = " + msg1);
        System.out.println("msg2 = " + msg2);
        System.out.println("=========================");
        System.out.println(env.getProperty("person.age"));
        System.out.println(env.getProperty("address[0]"));
        System.out.println(env.getProperty("msg1"));
        System.out.println(env.getProperty("msg2"));

        System.out.println("=========================");
        System.out.println(person);
        System.out.println("getAddress = " + person.getAddress());
        String[] address = person.getAddress();
        for (String s : address) {
            System.out.println(s);
        }
        return "HELLO SPRING BOOT----";
    }
}

对应的yml文件中的内容如下:application.yml

server:
  port: 8091

name: abc

#对象
person:
  name: lisi
  age: 20
  address:
  - beijing
  - shanghai

person2: {name: zhangsan,age: 22}

#数组类型
address:
- beijing
- shanghai

address2: [beijing,shanghai]

#纯量
msg1: 'hello \n world'  #单引号 原样输出
msg2: "hello \n world"  #双引号

#引用类型
person3:
  name: ${name}