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. springboot整合jsp模板

    springboot整合jsp模板 在使用springboot框架里使用jsp的时候,页面模板使用jsp在pom.xnl中需要引入相关的依赖,否则在controller中无法返回到指定页面 〇.搭建s ...

  2. myeclipse打断点进入后无法查看变量的值的解决方法

    myeclipse打断点进入后无法查看变量的值,打开mycelipse菜单选项:“Window” - “Preferences” - “Java” - “Editor” - “Hovers" ...

  3. HTML5-坦克大战一画出敌人坦克并让自己的坦克可以发子弹的功能(二)

    上一篇博客只画出了,一个坦克,并让其可以上下左右移动,这篇博客将画出敌人的坦克,并让自己的坦克可以发子弹,但是还不是尽善尽美,还有一些问题,将会在下篇博客说明: html代码: <!DOCTYP ...

  4. [ Openstack ] OpenStack-Mitaka 高可用之 镜像服务(glance)

    目录 Openstack-Mitaka 高可用之 概述    Openstack-Mitaka 高可用之 环境初始化    Openstack-Mitaka 高可用之 Mariadb-Galera集群 ...

  5. 运行微信支付demo

    首先要说说写这篇文章的初衷:集成支付宝支付运行demo都是可以正常运行的,但是我下载下来微信支付的demo,却发现一大堆报错,而且相关文章几乎没有,可能大家觉得没必要,也许你觉得很简单:但是技术大牛都 ...

  6. 使用graphql和apollo client构建react web应用

    graphql是一种用于 API 的查询语言(摘自官网). 我们为什么要用graphql? 相信大家在开发web应用的时候常常会遇到以下这些问题:后端更新了接口却没有通知前端,从而导致各种报错:后端修 ...

  7. django web 自定义通用权限控制

    需求:web系统有包含以下5个url,分别对于不同资源: 1.stu/add_stu/ 2.stu/upload_homework/ 3.stu/query_homework/ 4.stu/add_r ...

  8. 获取apk的appPackage和appActivity方法

    aapt dump badging +客户端包所在路径+客户端包名称;      aapt是SDK\tools侠的工具: adb shell          logcat | grep cmp= 将 ...

  9. [centos6.5]添加eclipse快捷方式

    [Desktop Entry] Version=buzhidao Encoding=UTF-8 Name=eclipse Comment=eclipse-for-php Exec=/opt/eclip ...

  10. UVA 11636.Hello World!-水题

    Hello World! Time limit: 1.000 seconds When you first made the computer to print the sentence “Hello ...