• 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通常用于注入某一些特定配置值中;
  • 相关阅读:
    Matlab 用sort函数排序 二维数组
    kmer
    Matlab Toolbox for Dimensionality Reduction (v0.7.2 November 2010)
    linux下杀死进程
    ObjectiveC 高级编程:iOS与OS X多线程和内存管理
    Cocos2dx中的场景切换特效以及新版接口特性
    Android SoftAp支持 (一)
    C程序访问hadoop出现的各种编译错误和运行时各种类DefFound异常的解决方法
    Spring PropertyPlaceholderConfigurer 站位
    找出linux磁盘莫名其妙消失的根本原因!
  • 原文地址:https://www.cnblogs.com/wwwcf1982603555/p/13834932.html
Copyright © 2020-2023  润新知