springboot 2.1 实践教程(四)-相关配置.YAML格式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/java_cxrs/article/details/89416401

Spring Boot 除了使用properties文件配置外,还可以用yaml格式的文件代替。

yaml介绍

YAML是一种简洁的非标记语言。YAML以数据为中心,使用空白、缩进,分行组织数据,从而使得表示更加简洁易读。 Spring Boot 官方推荐使用yaml文件

YAML语法格式:

标准格式:key:(空格)value

yaml文件的后缀为 .yml 例如文件名为:application.yml

  • 下面是一个yaml格式的文档示例
environments:
	dev:
		url: https://dev.example.com
		name: Developer Setup
	prod:
		url: https://another.example.com
		name: My Cool App
  • 上面所显示的文档示例对应的properties文件内容如下
environments.dev.url=https://dev.example.com
environments.dev.name=Developer Setup
environments.prod.url=https://another.example.com
environments.prod.name=My Cool App
  • yaml如果表示一个数组索引格式的文件,如下:
my:
servers:
	- dev.example.com
	- another.example.com
  • 对应的properties文件内容如下

my.servers[0]=dev.example.com
my.servers[1]=another.example.com

下面我们把上一章节的application.properties文件用yml文件代替内如如下

server:
  port: 8080
  servlet:
    context-path: /
  tomcat:
    uri-encoding: UTF-8
spring:
  http:
    encoding:
      charset: UTF-8

person:
  name: username
  password: 123456
  address: 127.0.0.1

扫描二维码关注公众号,回复: 6117680 查看本文章

那么还有个问题,我们怎么去加载自定义的配置信息呢?和我们获取application.properties内容一样

在属性值对应的实体Bean中配置@ConfigurationProperties

package org.learn.bean;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix="person")
public class PersonBean {

    private String name;
    private String password;
    private String address;

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}
package org.learn.controller;

import org.learn.bean.PersonBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class PersonController {

    @Autowired
    PersonBean person;
    @RequestMapping("/")
    String home() {
        String str = person.getName()+"_"+person.getPassword()+"_"+person.getAddress();
        return str;
    }
}

这样我们通过controller就可以获取到值了

猜你喜欢

转载自blog.csdn.net/java_cxrs/article/details/89416401
2.1