zoukankan      html  css  js  c++  java
  • 01-Spring Boot配置文件详解

    1、Properties配置详解

    ​ 通常情况下,我们可以使用properties文件进行相关的配置。

    ​ (1)在resources目录下创建application.properties

    person.name=zhangsan
    person.age=12
    person.gender=男
    person.desc=my name is ${person.name},my age is ${person.age}
    

      (2)创建对应的实体类对象

    @Component
    public class Person {
        @Value("${person.name}")
        private String name;
        @Value("${person.age}")
        private int age;
        private String sex;
        @Value("${person.desc}")
        private String desc;
    }
    

      可以在properties文件中使用随机数

    ​ (1)在application.properties文件中添加如下属性

    my.secret=${random.value}
    my.number=${random.int}
    my.bignumber=${random.long}
    my.uuid=${random.uuid}
    my.number.less.than.ten=${random.int(10)}
    my.number.in.range=${random.int[1024,65536]}
    

      (2)创建对应的实体类

    @Component
    public class My {
        @Value("${my.secret}")
        private String screct;
        @Value("${my.number}")
        private int number;
        @Value("${my.bignumber}")
        private long bignumber;
        @Value("${my.uuid}")
        private UUID uuid;
        @Value("${my.number.less.than.ten}")
        private int lessThanTen;
        @Value("${my.number.in.range}")
        private int numberInRangel;
    }
    

      

    多环境配置

    ​ 在实际开发中,我们的一套代码可能会被同时部署到开发、测试、生产等多个服务器中,每个环境中诸如数据库密码等这些个性化配置是避免不了的,虽然我们可以通过自动化运维部署的方式使用外部参数在服务启动时临时替换属性值,但这也意味着运维成本增高。

    ​ 1、在resources目录下创建多个配置文件

    ​ application-dev.properties

    ​ application-test.properties

    ​ application-prod.properties

    ​ application.properties

    spring.profiles.active=dev/test/prod
    

      

    2、YAML

    ​ YAML是“YAML Ain't Markup Language YAML不是一种标记语言”的外语缩写,但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。

    基本原则:

    • 1、大小写敏感
    • 2、使用缩进表示层级关系
    • 3、禁止使用tab缩进,只能使用空格键
    • 4、缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级。
    • 5、使用#表示注释

    (1)使用yaml完成多环境配置:application.yaml

    spring:
      profiles:
        active: test
    ---
    spring:
      profiles: dev
    server:
      port: 8080
    ---
    spring:
      profiles: test
    server:
      port: 8081
    

      (2)使用yaml进行相关参数的设置

    person:
      name: zhangsan
      age: 12
      sex: 男
      desc: my name is ${person.name},my age is ${person.age}
    

      对应的实体类对象

    @Component
    @ConfigurationProperties(prefix = "person")
    public class Person {
    //    @Value("${person.name}")
        private String name;
    //    @Value("${person.age}")
        private int age;
        private String sex;
    //    @Value("${person.desc}")
        private String desc;
    
    }
    

      

    3、@ConfigurationProperties 与 @Value 对比

    功能@ConfigurationProperties@Value
    松散绑定
    元数据支持
    spEL表达式
  • 相关阅读:
    python文件打开方式详解——a、a+、r+、w+、rb、rt区别
    io.UnsupportedOperation: can't do nonzero cur-relative seeks”错误
    端口三种模式:access,hybrid,trunk
    水仙花数
    maktrans和translate详解
    实战NFS服务搭建与配置
    except 配合 shell实现公钥分发脚本
    linux系统免秘钥分发文件
    rsync + inotify 实现远程实时同步数据
    通过rsync实现全网数据备份检查脚本
  • 原文地址:https://www.cnblogs.com/dagreentree/p/13565477.html
Copyright © 2011-2022 走看看