SpringBoot的配置文件

SpringBoot的配置文件

SpringBoot配置文件类型

SpringBoot配置文件类型和作用

SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。

SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件

其中,application.properties文件是键值对类型的文件,之前一直在使用,所以此处不在对properties文件的格式进行阐述。除了properties文件外,SpringBoot还可以使用yml文件进行配置。

application.yml配置文件

properties文件配置方式在上篇末尾

点此跳转

yml配置文件简介

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

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

加载顺序
在这里插入图片描述

配置普通数据

语法: key: value

配置对象数据
语法:

key: 

	key1: value1

	key2: value2

或者:

key: {key1: value1,key2: value2}
#对象的配置    语法:
  #
  #	key:
  #		key1: value1
  #		key2: value2


person:
  name: wangwu
  age: 20
  addr: beijing
  #	或者:
#行内对象配置 key: {key1: value1,key2: value2}
#person: {name: wangwu,age: 18, addr: beijing}
student:
   name: tom
   age: 18
   addr: shanghai

配置Map数据

#Mappe配置:
#map:
#  key1: value1
#  key2: value2

配置数组(List、Set)数据
key:

	- value1

	- value2

或者:

key: [value1,value2]
city:
  - beijing
  - tianjin
  - shenyang
  
#或者

city: [beijing,tianjin,shanghai,chongqing]
#集合中的元素是对象形式
student:
  - name: zhangsan
    age: 18
    score: 100
  - name: lisi
    age: 20
    score: 78
  - name: wangwu
    age: 30
    score: 91

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

使用注解@Value映射

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

 person: 
    name: zhangsan  
    age: 20

实体代码如下:

@Controller
public class QuickController {
    @Value("${name}")
    private String name;
    @Value("${addr}")
    private String addr;

    @RequestMapping("/quick")
    @ResponseBody
    public String quick2(){
        //获得配置文件信息
    return "name"+name;
    }
}

浏览器访问地址 显示
在这里插入图片描述

使用注解@ConfigurationProperties映射

通过注解@ConfigurationProperties(prefix=“配置文件中的key的前缀”)可以将配置文件中的配置自动与实体进行映射
application.yml配置如下:

 person: 
    name: zhangsan  
    age: 20
@Controller
@ConfigurationProperties(prefix = "person")//匹配对象名  字段自动跟属性进行匹配
public class Quick3Controller {

    private String name;
    private String addr;

    @RequestMapping("/quick3")
    @ResponseBody
    public String quick2(){
        //获得配置文件信息


        return "name"+name;
    }

    public String getName() {
        return name;
    }

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

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }
}

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

springboot的yaml多文档模块

---   把文档分成多个模块
server:
  port: 8082
#  指定用哪个配置
spring:
  profiles:
    active: test
---
server:
  port: 8083
spring:
  profiles: dev
---
#---多文档分割 代表分成三个不同的文档
server:
  port: 8084
spring:
#  起名字
  profiles: test
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值