zoukankan      html  css  js  c++  java
  • Spring Boot笔记三:配置文件

      配置文件这里需要讲的东西很多,所以我写在了这里,但是这个是和上篇文章衔接的,所以看这篇文章,先看上篇文章笔记二

    一、单独的配置文件

    配置文件里面不能都写我们的类的配置吧,这样那么多类太杂了,所以我们写一个person.properties

    person.name=Vae
    person.age=32
    person.boss=true
    person.birth=1986/05/14
    person.maps.k1=Vae
    person.maps.k2=32
    person.lists=许嵩,林俊杰,蜀云泉
    person.dog.name=格洛米
    person.dog.age=4

    我非常非常喜欢yml,但是这里我尝试了yml格式的不行,只能properties

    然后类里面这样写

    @PropertySource(value = {"classpath:person.properties"})

    你可以把application里面的都注释了,用person配置文件,是OK的

    二、配置文件的随机数和占位符

    server:
      port: 8052
    
    person:
        name: 许嵩${random.uuid}
        age: ${random.int}
        boss: false
        birth: 1995/11/19
        maps: {k1: v1,k2: 12}
        lists:
            - 许嵩
            - 林俊杰
        dog:
            name: ${person.name:默认的}-格洛米
            age: 4

    这个是我的yml文件,${random.UUID}这个就是随机数,${person.name:默认的}这个就是占位符,如果占位符取不到值的话,就采用默认的值

    三、配置文件多环境支持

    先说properties,我新建两个properties,格式是application加一个 - 后面接名字,这个是规定写法,例如

     

     可以看到,我三个properties里面的端口号分别是8080,8082,8083 默认生效的是application.properties。那么怎么让其他的生效呢?这样写:

    spring.profiles.active=dev

    这就是设置活动的配置文件,这样运行一下,端口号就是8082了,这就是properties的多配置文件的切换,也就是所谓的多环境支持

    下面来讲一下我最喜欢的yml,看看yml在多环境这个场景下是不是也值得喜欢

    根据图可以看到,我写了三个,中间用 --- 分隔,三个横线,打了这个之后,文档就会分隔,你看下面 Document2/3  ,所以yml是根据 ---来分隔的,这个称之为多文档块

    这样不用新建文件啊,yml还是那么爽,注意在使用yml的时候,把你的properties里面的server.port啥的注释掉,别忘了相同内容下有properties就没yml

    我们运行一下,端口号就是8090,那怎么切换呢?还是一样的

    我再次提醒,把properties注释了,再用yml

    properties和yml的多环境配置配置文件以及讲完了,我还是喜欢yml,接下来介绍一下其他激活配置文件的方式,有两种:

    1.命令行的方式,采用的是  --spring.profiles.active=dev

    可以在这里配置:

    也可以在这里配置:(先打jar包,然后执行jar包的时候执行)

    2.虚拟机参数,写法是 -Dspring.profiles.active=dev     前面必须是-D  这是固定写法

     总结一下,配置文件的多环境配置有两个

    1.properties  2.yml  

    我最喜欢yml

    多配置文件的激活方式有三种

    1.配置文件自己写的active  2.命令行方式  3.虚拟机方式

     四,配置文件的加载位置

     文件的加载位置有4个,优先级依次往下,并不是最高优先级的加载了下面的就不加载了,全部都是会加载的,会互补

    1.--file:./config/

    2.--file:./

    3.--classpath:./config/

    4.--classpath:./

    上面的4个地址优先级从高到低,至于他们四个的位置,我在下图标识出来了

     加载位置还有外部加载,官网列出了17中外部加载的方式,我实在是不想看了...

    大概的把上面的翻译一下,如下图:(保留了11个比较重要的,其中红色是重点看看的对象)

    最后一部分是配置文件的自动配置原理,这个我看不懂,所以暂且搁置不讲了。

  • 相关阅读:
    圆 abc模块的练习
    组合,封装,访问限制机制,property,多态,抽象类(了解),鸭子类型,多态旋技操作。
    继承初体验,寻找继承关系,继承背景下和对象属性查找顺序,派生,(子类派生出新的属性,并重新父类的属性),新式类与经典类,钻石继承。钻石继承实现修改jison模块数据类型。
    面向对象继承练习题
    基于面向对象设计一个对战游戏练习。
    面向对象基础,类,对象、对象与类的查找顺序,对象绑定方法的特殊之处,python一切皆是对象
    HihoCoder
    HihoCoder
    2019 牛客暑期多校 第三场 F Planting Trees (单调队列+尺取)
    2019 牛客暑期多校 第八场 A All-one Matrices (单调栈+前缀和)
  • 原文地址:https://www.cnblogs.com/yunquan/p/10332273.html
Copyright © 2011-2022 走看看