Java web项目中一般都有配置文件,文件中包含一些配置信息供Java工程启动和运行时使用,这些常见的配置文件大都是一些以.properties后缀的文件,比如常见的antx.properties以及application.properties。当然也可以使用一些自动化配置工具,如autoConfig。那么这三者之间有什么关系呢?
 
autoconfig.xml和antx.properties之间关系:
autoconfig.xml中<property>属性下存在名值对,即name:defaultValue,这些名值对是怎样起作用的呢?
 
1) 如果antx.properties中没有对应的name,则自动化配置工具会在antx.properties中新增对应的键值对,也就是这个name:defaultValue键值对;
 
2)如果antx.properties中已经存在对应的name,则什么都不做,自动化配置工具不会对name对应的值进行修改;
 
3)如果在antx.properties和autoConfig.xml中都存在一个name,并且在autoConfig.xml中修改了这个name对应的值,则autoconfig中的修改不会反映到antx中;
 
总之:autoconfig的最主要的功能是在antx中增加原来antx中不存在的键值对,而不会覆盖本地已有的配置。这个逻辑是符合常识的,如果我在本地为antx的某个变量配置了值,那么这个配置一定是对我当前本地工程有效的并且适合我的当前的项目环境的,所以不希望被autoconfig覆盖。
 
defaultValue:

在本地环境中,项目启动时会根据autoconfig文件生成或者修改 antx.properties文件(修改主要是添加名值对,不会覆盖原来的名值对)。如果antx.properties文件中没有对应的name,则会把antoconfig.xml中的name:defaultValue复制到antx.properties中,即直接使用那些defaultvalue。这是defaultValue的主要作用。

springboot 的application.properties和antx.properties
 
springboot的application.properties文件会取antx.properties去对应的配置值。
 
结论:
 
因此可以得到这三者之间的顺序以及关系:autoconfig---->antx----->application。

autoconfig.xml与antx.properties一级application.properties之间的关系的更多相关文章

  1. Spring boot 官网学习笔记 - Spring Boot 属性配置和使用(转)-application.properties

    Spring Boot uses a very particular PropertySource order that is designed to allow sensible overridin ...

  2. application.properties文件中暗藏玄机

    上次分享了如何一步一步搭建一个springboot的项目,详细参见<5分钟快速搭建一个springboot的项目>,最终的结果是在"8080"端口搭建起了服务,并成功访 ...

  3. Spring 的application.properties项目配置与注解

    一.项目结构介绍 如上图所示,Spring Boot的基础结构共三个文件: src/main/java  程序开发以及主程序入口 src/main/resources 配置文件 src/test/ja ...

  4. Java 读取application.properties配置文件中配置

    实际开发中若需要读取配置文件application.properties中的配置,代码如下.例:读取配置文件中name属性配置值: 代码如下: import org.springframework.c ...

  5. SpringBoot在logback.xml中读取application.properties中配置的日志路径

    1.在springboot项目中使用logback记录日志,在logback.xml中配置日志存储位置时读取application.properties中配置的路径,在 logback.xml中配置引 ...

  6. 【spring boot logback】日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么

    本篇 将针对[日志使用自定义的logback-spring.xml文件后,application.properties中关于日志的相关配置还会起作用么]这一个主题进行探索. 这个测试项目是根据[spr ...

  7. application.properties 和 pom.xml

    application.properties server.port=8080 server.tomcat.max-connections=10000 server.tomcat.max-thread ...

  8. SpringBoot 配置文件application.properties

    # =================================================================== # COMMON SPRING BOOT PROPERTIE ...

  9. Spring boot 全局配置文件application.properties

    #更改Tomcat端口号 server.port=8090 #修改进入DispatcherServlet的规则为:*.htmlserver.servlet-path=*.html#这里要注意高版本的s ...

随机推荐

  1. jQuery中操作样式

    操作行间样式 // 获取div的样式 $("div").css("width"); $("div").css("color&quo ...

  2. JavaScript的字符串详解

    #转载请留言联系 字符串合并 + var str1="chi"; var str2="chung"; console.log(str1+str2) 输出:chi ...

  3. 配置WCF

    出处:http://blog.csdn.net/fangxing80/article/details/6106228 前面一篇文章<WCF 学习总结1 -- 简单实例>一股脑儿展示了几种W ...

  4. Liquibase 快速开始

    Step 1 :创建Changelog文件,所有的数据库变动都会保存在Changelog文件中 <?xml version="1.0" encoding="UTF- ...

  5. (二)mysql忘记root密码

    (1)mysql 5.7.6以前版本 修改配置文件vim /etc/my.cnf [mysqld] skip-grant-tables 重启mysql systemctl restart mysqld ...

  6. scrapy xpath 从response中获取li,然后再获取li中img的src

    lis = response.xpath("//ul/li") for li in lis: src = li.xpath("img/@src") # 如果xp ...

  7. centos中pyenv安装

    1.先安装git yum install git -y 2.克隆pyenv到本地 git clone git://github.com/yyuu/pyenv.git .pyenv 或自动安装 curl ...

  8. 51nod 最长单增子序列(动态规划)

    最长单增子序列 (LIS Longest Increasing Subsequence)给定一个数列,从中删掉任意若干项剩余的序列叫做它的一个子序列,求它的最长的子序列,满足子序列中的元素是单调递增的 ...

  9. Eclipse Build all and build project not working - jar missing

    Eclipse Build all and build project not working - jar missing

  10. luogu P3368 【模板】树状数组 2

    题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数数加上x 2.求出某一个数的和 输入输出格式 输入格式: 第一行包含两个整数N.M,分别表示该数列数字的个数和操作的总个数. ...