栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot获取yml中的配置数据的三种方式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot获取yml中的配置数据的三种方式

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

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

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

    

    @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}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282515.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号