springboot 系列教程七:yml文件的使用

YAML简介


Spring Boot 可以使用 application.properties 文件或者 application.yml 文件,文件名是固定的。yml是YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心,比json/xml等更适合做配置文件,官方也更推荐使用yml文件作为配置文件。

比如配置端口号:

server:
  port: 8081

注意下 port 前面不允许使用 tab,否则报错,port 后面的后面也是需要一个空格

YAML 适应场景

  • 脚本语言:由于实现简单,解析成本很低,YAML 特别适合在脚本语言中使用
  • 序列化: YAML是由宿主语言数据类型直转,的比较适合做序列化。
  • 配置文件:写 YAML 要比写 XML 快得多(无需关注标签或引号),并且比 INI 文档功能更强。由于兼容性问题,不同语言间的数据流转建议不要用 YAML。

YAML 语法

  1. 使用空格缩进表示分层,不同层次之间的缩进可以使用不同的空格数目,但是同层元素一定左对齐,即前面空格数目相同(不能使用 Tab,各个系统 Tab对应的 Space 数目可能不同,导致层次混乱)
  2. ‘#’ 表示注释,只能单行注释
  3. 减号后面后面也需要一个空格,表示列表(数组或者 list )
  4. 用冒号和空格表示键值对 key: value
  5. 简单数据可以不使用引号括起来,包括字符串数据。用单引号或者双引号括起来的被当作字符串数据,在单引号或双引号中可以使用某些转义字符

测试

设置元数据以及自动的注入需要引入如下依赖:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-configuration-processor</artifactId>
     <optional>true</optional>
</dependency>

首先写一个测试实体类

@Component
@ConfigurationProperties(prefix = "user")
public class User {

    private int userId;
    private String userName;
    private List<String> books;
    private String[] mobile;
    private Map<String,String> other;

	//省略set/get方法
}

然后在application.yml文件添加如下内容:

user:
  userId: 1001
  userName: admin
  books:
    - 三国演义
    - 红楼梦
    - 西游记
  mobile:
    - 华为
    - 小米
    - 苹果
  other:
    height: 170cm
    weight: 120

@ConfigurationProperties(prefix = "user")该注解声明了配置文件的前缀user

controller 层使用@Autowired注入 bean 即可:

@RestController
public class UserController {

    @Autowired
    User user;

    //查询数据,并且返回给页面显示
    @RequestMapping("/index")
    public String index(Model model){
        System.out.println("--------yml文件数据读取--------");
        System.out.println(user.getUserId());
        System.out.println(user.getUserName());
        System.out.println(user.getBooks());
        System.out.println(Arrays.toString(user.getMobile()));
        System.out.println(user.getOther());
        return "index";
    }
}

测试结果如下:

转载于:https://my.oschina.net/zhoumj/blog/3038968

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值