zoukankan      html  css  js  c++  java
  • SpringBoot配置加载,各配置文件优先级对比

    1.SpringBoot配置文件

    SpringBoot使用一个以application命名的配置文件作为默认的全局配置文件。支持properties后缀结尾的配置文件或者以yml/yaml后缀结尾的YAML的文件配置。

    以设置应用端口为例:

    properties文件示例(application.properties):
    server.port=80
    YAML文件示例(application.yml):
    server:
      port: 80
    

      

    两者同时存在情况

    假如各配置文件都配置了不同的端口,那么SpringBoot会使用哪一个端口呢?带着疑问试验一下实例

    在resources目录下创建两个配置文件,一个为application.yml配置文件,设置端口为8090,另一个为application.properties配置文件,设置端口为8070;

    8070被启动说明如果两个配置文件同时存在,application.properties优先级高于application.yml。

    2.配置文件目录

    SpringBoot配置文件可以放置在多种路径下,不同路径下的配置优先级有所不同。
    可放置目录(优先级从高到低)

      • file:./config/ (当前项目路径config目录下);
      • file:./ (当前项目路径下);
      • classpath:/config/ (类路径config目录下);
      • classpath:/ (类路径config下).
      • 一般在resources目录下创建的即为classpath目录
      • 3

        1. 在resources/目录下配置文件设置端口为8888;
        2. 在resources/config目录下配置文件设置端口为9999;
        3. 在项目路径下配置文件设置端口为6666;
        4. 在项目路径config目录下配置文件设置端口为7777;最后运行结果端口7777被打开

          @ConfigurationProperties与@Value两种注解对比

          比较项@ConfigurationProperties@Value
          全量注入 支持
          松散绑定(Relaxed binding) 支持
          SpEL 支持
          JSR303 支持 不支持
          **松散绑定:**驼峰命名(userName)、横干拼接(user-name)、下划线(user_name)之间可以互相识别绑定称为做松散绑定
          **JSR303:**通过@Email,@Nullable,@Digits 等等注解进行邮箱、判空、数字格式等等数据的校验,更多相关内容请参考IBM的中文文档:https://www.ibm.com/developerworks/cn/java/j-lo-jsr303/index.html
          @ConfigurationProperties通常用于将配置全量注入某个类中;
          @Value通常用于注入某一些特定配置值中;
  • 相关阅读:
    Codeforces 448 D. Multiplication Table
    编程算法
    Linux内核导出符号宏定义EXPORT_SYMBOL源代码分析
    3.Chrome数据同步服务分析--server一片
    hadoop 开始时间datanode一个错误 Problem connecting to server
    about greenplum collection tool
    HDU 3172 Virtual Friends(并用正确的设置检查)
    leetcode
    Codeforces 450 C. Jzzhu and Chocolate
    Swift
  • 原文地址:https://www.cnblogs.com/wwwcf1982603555/p/13834932.html
Copyright © 2011-2022 走看看