yml/yaml文件在springboot的使用

文章详细介绍了yaml/yml文件的语法特性,如大小写敏感、缩进表示层级,并展示了Springboot读取yml配置的三种方式:@Value注解、Environment对象以及@ConfigurationProperties注解进行对象绑定。通过示例代码演示了如何从配置文件中获取并使用数据。
摘要由CSDN通过智能技术生成

yaml/yml文件在springboot的使用

yml文件是能够直接被计算机识别的序列化文件,并且容易被程序员阅读。yml文件是以数据为中心的文件,目前被多种编程语言所支持,包括Java,c,python等。

基本语法

1.大小写敏感
2.数据值前必须有空格
3.使用缩进表示层级关系
4.#表示注释

#对象,键值对集合
name: "王五"
person:
  name: "张三"
  age: 20
person2: {name: "李四"}
#数组
adress:
  - benjing
  - hongzhou
  - shanghai
#纯量
msg1: 'hello \n world'#单引号会忽略转义字符\n,不会换行原样显示
msg2: "hello \n world"#双引号会识别转义字符,输出换行

springboot读取yml文件配置内容方式1

1.配置文件必须叫application.yml(可以改名,默认读取application)
2.在任意程序皆可注入值,使用注解@value

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

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

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

    @Value("${adress[0]}")
    private String adress0;

    @Value("${adress[1]}")
    private String adress1;

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

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

    @RequestMapping("/hello2")
    public String hello2(){
        System.out.println(name);
        System.out.println(name2);
        System.out.println(name3);
        System.out.println(adress0);
        System.out.println(adress1);
        System.out.println(msg1);
        System.out.println(msg2);
        return name+name2+name3;
    }

3.输出如下`

王五
张三
李四
benjing
hongzhou
hello \n world
hello 
 world

springboot读取yml文件配置内容方式2

1.注入Environment对象方式注入

@Autowired
    private Environment env;

2.使用`

System.out.println(env.getProperty("person.name"));
        System.out.println(env.getProperty("person2.name"));
        System.out.println(env.getProperty("adress[0]"));

3结果

张三
李四
benjing

springboot读取yml文件配置内容方式3

1.目的是方便将yaml对象注入到Java对象中
2.创建一个Person对象,@Component注解表示可被sp(spring)识别
3.使用@ConfigurationProperties,

//表示该person被spring识别,他是一个Bean
@Component
//prefix = "person"指注入值前缀,该处表示yml中person.name和person.age,而不是name和age
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;

4.使用
首先注入对象

@Autowired
    private Person person;

然后调用

System.out.println(person.getName());
        System.out.println(person.getAge());

输出

张三
20

感谢观看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值