zoukankan      html  css  js  c++  java
  • SpringBoot 配置

    SpringBoot 配置

    配置文件分类

    SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,

    就可以使用 application.properties或者application.yml(application.yaml)进行配置。

    • properties:
    server.port=8080
    
    • yml:
    server: 
    	port: 8080
    

    小结

    • SpringBoot提供了2种配置文件类型:properteis和yml/yaml

    • 默认配置文件名称:application

    • 在同一级目录下优先级为:properties > yml > yaml

    YAML

    YAML全称是 YAML Ain't Markup Language 。

    YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅 读,

    容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,

    比如: C/C++, Ruby, Python, Java, Perl, C#, PHP 等。

    YML文件是以数据为核心的,比传统的xml方式更加简洁。

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

    YAML 配置

    properties

    server.port=8082
    server.address=127.0.0.1
    

    yml:

    server:
      port: 8081
      address: 127.0.0.1
    

    xml:

    <server>
    	<port>8080</port>
    	<address>127.0.0.1</address>
    </server>
    

    简洁,以数据为核心

    YAML:基本语法

    • 大小写敏感

    • 数据值前边必须有空格,作为分隔符

    • 使用缩进表示层级关系

    • 缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的 空格数目可能不同,导致层次混乱)。

    • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

    • # 表示注释,从这个字符一直到行尾,都会被解析器忽略。

    server:
      port: 8081
      address: 127.0.0.1
    
    name: xiang
    

    YAML:数据格式

    • 对象(map):键值对的集合。
    server:
      port: 8082
    
    name: xiang
    name2: xiang
    
    #对象
    person:
      name2: ${name}
      name: xiang
      age: 20
      gender: 男
      address:
        - beijing
        - shanghai
    
    #对象行内写法
    person2: { name: xiang,age: 21 }
    
    • 数组:一组按次序排列的值
    #数组
    address:
      - beijing
      - shanghai
    
    #数组 行内写法
    address2: [ beijing,shanghai ]
    
    • 纯量(常量):单个的、不可再分的值
    #纯量、常量
    msg1: 'hello 
     world'
    msg2: "hello 
     world"
    
    • yml 多文档 格式
    # yml 多文档 格式  --- 进行分隔
    
    ---
    server:
      port: 8081
    spring:
      profiles: dev
    ---
    
    server:
      port: 8082
    spring:
        profiles: test
    ---
    
    server:
      port: 8083
    spring:
        profiles: pro
    ---
    
    #激活 环境
    spring:
      profiles:
        active: test
    

    YAML:参数引用

    name: xiang
    name2: xiang
    
    #对象
    person:
      name2: ${name} # 引用上边定义的name值
      name: xiang
    

    YAML:小结

    1. 配置文件类型

      • properties:和以前一样
      • yml/yaml:注意空格
    2. yaml:简洁,以数据为核心

      • 基本语法

        • 大小写敏感

        • 数据值前边必须有空格,作为分隔符

        • 使用空格缩进表示层级关系,相同缩进表示同一级

      • 数据格式

        • 对象

        • 数组: 使用 “- ”表示数组每个元素

        • 纯量(常量)

      • 参数引用

        • ${key}

    读取配置内容

    • @Value

    • Environment

    • @ConfigurationProperties

    profile

    我们在开发Spring Boot应用时,通常同一套程序会被安装到不同环境,

    比如:开发、测试、生产等。

    其中数据库地址、服务 器端口等等配置都不同,如果每次打包时,都要修改配置文件,那么非常麻烦。

    profile功能就是来进行动态配置切换的。

    profile配置方式

    • 多profile文件方式

    • yml多文档方式

    profile激活方式

    • 配置文件

    • 虚拟机参数

    • 命令行参数

    Profile-小结

    profile是用来完成不同环境下,配置动态切换功能的。

    profile配置方式

    • 多profile文件方式:提供多个配置文件,每个代表一种环境
      • application-dev.properties/yml 开发环境
      • application-test.properties/yml 测试环境
      • application-pro.properties/yml 生产环境
    • yml多文档方式:
      • 在yml中使用 --- 分隔不同配置

    profile激活方式

    • 配置文件: 再配置文件中配置:spring.profiles.active=dev
    • 虚拟机参数:在VM options 指定:-Dspring.profiles.active=dev
    • 命令行参数:java –jar xxx.jar --spring.profiles.active=dev

    内部配置加载顺序

    Springboot程序启动时,会从以下位置加载配置文件:

    1. file:./config/:当前项目下的/config目录下

    2. file:./ :当前项目的根目录

    3. classpath:/config/:classpath的/config目录

    4. classpath:/ :classpath的根目录

    加载顺序为上文的排列顺序,高优先级配置的属性会生效

    外部配置加载顺序

    网址

    https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/htmlsingle/#boot-features-extermal-config


  • 相关阅读:
    四则运算 calc()
    如何创建width与height比例固定的元素
    eslint规则 中文备注
    使用gulp构建工具
    JavaScript 给表格排序
    【转】grunt动态生成文件名
    vim正则表达式(转)
    正则表达式30分钟入门教程(转)
    hdu 1874 Dijkstra算法
    centos7.4安装mysql
  • 原文地址:https://www.cnblogs.com/d534/p/15336114.html
Copyright © 2011-2022 走看看