前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于yml

关于yml

作者头像
名字是乱打的
发布2022-05-13 11:30:06
1.2K0
发布2022-05-13 11:30:06
举报
文章被收录于专栏:软件工程

YML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。 YML文件是以数据为核心的,比传统的xml方式更加简洁。(不像xml 我们通常要写很多标签)

YML文件的扩展名可以使用.yml或者.yaml。

yml配置文件的语法
配置普通数据

语法: key: value

示例代码:

代码语言:javascript
复制
name: haohao

注意:value之前有一个空格

配置对象数据

示例代码:

代码语言:javascript
复制
person:
  name: haohao
  age: 31
  addr: beijing

#或者

person: {name: haohao,age: 31,addr: beijing}

注意:key1前面的空格个数不限定,在yml语法中,相同缩进代表同一个级别

配置Map数据

同上面的对象写法

配置数组(List、Set)数据

示例代码:

代码语言:javascript
复制
city:
  - beijing
  - tianjin
  - shanghai
  - chongqing
  
#或者

city: [beijing,tianjin,shanghai,chongqing]

#集合中的元素是对象形式
student:
  - name: zhangsan
    age: 18
    score: 100
  - name: lisi
    age: 28
    score: 88
  - name: wangwu
    age: 38
    score: 90

注意:value1与之间的 - 之间存在一个空格

配置文件与配置类的属性映射方式

使用注解@Value映射

我们可以通过@Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上

例如:

代码语言:javascript
复制
application.properties配置如下:
person:
  name: zhangsan
  age: 18
或者,application.yml配置如下:
person:
  name: zhangsan
  age: 18
代码语言:javascript
复制
实体Bean代码如下:
@Controller
public class QuickStartController {

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


    @RequestMapping("/quick")
    @ResponseBody
    public String quick(){
        return "springboot 访问成功! name="+name+",age="+age;
    }

}

浏览器访问地址:http://localhost:8080/quick 结果如下:

使用注解@ConfigurationProperties映射

通过注解@ConfigurationProperties(prefix="配置文件中的key的前缀")可以将配置文件中的配置自动与实体进行映射 有时候我们也可以再实体中先声明@ConfigurationProperties,并生成对应的set/get方法,然后我们在编写配置文件时候就可以有信息编写提示

代码语言:javascript
复制
application.properties配置如下:
person:
  name: zhangsan
或者,application.yml配置如下:
person:
  name: zhangsan
  age: 18
代码语言:javascript
复制
实体Bean代码如下:
@Controller
@ConfigurationProperties(prefix = "person")
public class QuickStartController {

    private String name;
    private Integer age;

    @RequestMapping("/quick")
    @ResponseBody
    public String quick(){
        return "springboot 访问成功! name="+name+",age="+age;
    }

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

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

浏览器访问地址:http://localhost:8080/quick 结果如下:

注意:使用@ConfigurationProperties方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供set方法才可以,而使用@Value注解修饰的字段不需要提供set方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • yml配置文件的语法
  • 配置文件与配置类的属性映射方式
    • 使用注解@Value映射
      • 使用注解@ConfigurationProperties映射
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档