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。

最新文章

  1. C#动态生成html页
  2. C++注意
  3. (转)c# 解析JSON的几种办法
  4. 白话学习MVC(七)Action的执行一
  5. NBIbatis web/winform框架
  6. linux apache 自动监护脚本
  7. JedisPool使用原理和源代码
  8. UVa11218 KTV
  9. Codeforces Round #309 (Div. 2) A. Kyoya and Photobooks 字符串水题
  10. Ubuntu(16.04) 下如何修改(安装)arm-linux-gcc编译器
  11. 亚洲最佳电影TOP100出炉 你看过几部?
  12. [C# 基础知识系列]专题四:事件揭秘
  13. 有关java中的hashCode问题
  14. AXIOS源代码重点难点分析
  15. 巡风安装配置 -windows
  16. ASP.NET 文件操作类
  17. 20155235 王玥 《基于Arm实验箱的接口测试和应用》 课程设计报告
  18. C++ 拷贝构造函数之const关键字
  19. Git的配置和使用
  20. luogu 1360 阵容均衡(前缀和+差分+hash)

热门文章

  1. 【bzoj2796】 [Poi2012]Fibonacci Representation
  2. vue指令v-bind
  3. springmvc对于前台date类型注意点
  4. maven多模块项目执行 deploy 时 忽略某些model (忽略war包)
  5. [ 总结 ] Linux 下文件描述符
  6. discuz自定义生成单页面
  7. DRF的限流功能
  8. (四)监控cpu
  9. docker 与 yarn
  10. 【转】appium常用方法整理