首页 > 代码库 > Webx框架:AutoConfig
Webx框架:AutoConfig
AutoConfig
AutoConfig是一个小工具,用于解决不同机器之间配置不同的问题。有时候有些配置,比如数据库地址、缓存地址等,这些配置与环境有关。每次在不同的环境中都需要重新修改配置,比较麻烦。解决这个问题有两种方法,一种是通过maven中的filter工具,另外一种是使用autoconfig。maven-filter工具的缺点是,当项目编译打包之后,无法再修改配置文件。而autoconfig可以通过一个脚本指令,直接修改打包过的配置文件,不需要重新编译,这样节省了不少时间。
接下来介绍用法,包括开发阶段和部署阶段。开发阶段首先在META-INF
文件夹中增加autoconf/auto-config.xml
文件。下面是该文件的示例内容:
下面是每个标签的解释:
property
标签。有name/defaultValue/description/required
属性。顾名思义,这里就不赘述了。
validator
标签。用于验证参数是否填写正确。支持的验证器有以下几种。
文件必须存在合法IP只能由字母数字下划线组成
generate
标签。表示替换该文件中的placeholder。有template/destfile/charset/outputCharset
参数。
在maven中加入autoconfig
。
com.alibaba.citrus.toolautoconfig-maven-plugin1.2<!-- 要进行 AutoConfig 的目标文件,默认为${project.artifact.file}。<dest>${project.artifact.file}</dest>--><!-- 配置后,是否展开目标文件,默认为false,不展开。<exploding>true</exploding>--><!-- 展开到指定目录,默认为 ${project.build.directory}/ ${project.build.finalName}。<explodedDirectory>${project.build.directory}/${project.build.finalName}</explodedDirectory>-->packageautoconfig
部署阶段。首先从网上下载autoconfig工具:
- antx-autoconfig-1.2.tgz
- antx-autoexpand-1.2.tgz
安装到系统目录,比如/usr/local/bin
中。
配置应用包。下面的命令将会修改test.war
中的配置文件,将placeholder
直接替换成属性值。
autoconfig test.war
或者
autoconfig test.war test-configured.war
如果希望有的placeholder
不被替换,可以使用${D\{myprop}}
。
共享参数。有些应用使用的相同的参数,就可以通过这个选项,一次配置,多方使用。
autoconfig -s share1.properties,share2.properties test.war
共享参数还可以引用网络上的配置文件,可以有多套默认配置。
其他命令。
autoconfig -i on # 交互模式autoconfig -i offautoconfig -u file.xml # 配置file.xml文件autoconfig -c GBK # 设置编码
AutoExpand
用于嵌套展开一个应用包。
Webx框架:AutoConfig