AutoConfig

需求分析:

解决根绝环境动态绑定配置参数需求

现有主流解决方案:

  1. spring、logback等框架的placeholder替换
    缺点:需要依赖特定框架,且用法不统一。

  2. 中心配置服务器
    缺点:

  3. 增加系统复杂性,对中心配置服务器的性能和高可用保障。

  4. 需要改造应用,对接中心配置服务器。

  5. 还是存在依赖中心配置服务器的IP、端口等参数没有解决。

  6. Maven Filtering
    缺点:

  7. build结束生成二级制包后无法更改参数内容。

  8. 缺少参数的验证机制。

AutoConfig特性:

  1. 独立使用或做为maven插件使用。
  2. 对目标文件而不是源文件配置,支持嵌套目标文件配置。
  3. 验证properties机制。 (通过<property>的required属性和子标签<validator>实现)

开发者指南

AutoConfig配置文件的目录结构:

  1. war包是 /src/main/webapp/META-INF/autoconf/auto-config.xml
  2. jar包是 /src/main/resources/META-INF/autoconf/auto-config.xml
  3. 普通目录是/conf/auto-config.xml

描述文件auto-config.xml 定义了property属性占位置(仅仅是配置属性里键值对里的值这部分)和对应的校验规则。

模板文件(记录不同环境需要哪些属性的键值对)的位置

定义完auto-config.xml描述文件以后,就可以创建模板了。模板放在哪里呢?举例说明。
假设在一个典型的WEB应用中,你的auto-config.xml
中包含指定了如下模板:

<?xml version="1.0" encoding="UTF-8"?>
  <config>
    <group> ... </group>
    <script>
      <generate template="WEB-INF/classes/file1.xml" /> 
      <generate template="WEB-INF/classes/file2.xml" />
      <generate template="WEB-INF/file3.xml" />
    </script>
  </config>

那么,你可以把file1.xml
、file2.xml
、file3.xml
放在下面的位置:


Paste_Image.png

AutoConfig的寻找模板的逻辑是:
如果在auto-config.xml所在的目录下发现模板文件,就使用它;(相对目录的起始位置从auto-config.xml所在目录开始)
否则在包的根目录中查找模板文件;如果两处均未找到,则报错。

部署指南

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,162评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,358评论 6 342
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,212评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 4,106评论 0 11
  • 模板特化分为两种: 模板全特化 模板偏特化 模板全特化 模板偏特化
    Angeladoudou阅读 220评论 0 0

友情链接更多精彩内容