Webx 中应用的属性配置解决方案及思路

常见的Java应用属性配置方案

1)框架运行时参数placeholder占位符替换
很多框架支持在运行时刻替换配置文件中的placeholder占位符。
			<services:property-placeholder />
			<services:webx-configuration>
				<services:productionMode>${productionMode:true}</services:productionMode>
			</services:webx-configuration>
  你可以在启动应用时,加上JVM参数:“ -DproductionMode=false|true ”来告诉系统用哪一种模式来工作。如果不指定,则取默认值“ true ”。
---------优缺点:
不同框架进行运行时placeholder占位符替换的实现方式不同

2)中心配置服务器Config Server
 这也是一种运行时技术。它可以在运行时刻,将应用所需的参数推送到应用中。
---------优缺点:
代码侵入,应用需要做相应的配置如指明configure server地址等

3)Maven Filter机制
  Maven提供了一种过滤机制,可以在资源文件被复制到目标目录的同时,替换其中的placeholders。
---------优缺点:
这不是运行时机制,所以不够灵活

4)AutoConfig机制
  这意味着该机制与应用所采用的技术、框架完全无关,对应用完全透明,具有良好的通用性。
同时,AutoConfig与运行时的配置技术并不冲突。它可以和运行时替换的placeholders以及中心配置服务器完美并存,互为补充。

--------------------------------------------------------------------------------------------------------------------------------

AutoConfig使用动机
1)autoconfig用户角色
开发者: 定义应用所需要的properties,及其限定条件
                提供包含placeholders占位符的配置文件
  部署者: 根据所定义的properties,提供符合限定条件的属性值。
                调用AutoConfig来生成目标配置文件

所以看出来AutoConfig一般用于部署人员灵活的配置各类它们和应用的逻辑无关,只和当前环境、当前系统用户相关的参数

——举例:
开发者定义了一个property:petstore.upload_dir,限定条件为:“合法的文件系统的目录名”。
布署者取得petstore的二进制发布包,通过AutoConfig了解到,应用需要一个名为 petstore.upload_dir目录名。 
布署者便指定一个目录给petstore,该目录名的具体值可能因不同的系统而异。
AutoConfig会检验该值是否符合限定条件(是否为合法目录名),如果检验通过,就生成配置文件,并将其中的 ${petstore.upload_dir}替换成该目录名

2)AutoConfig应用场景
从这个意义上讲,AutoConfig不应当被看成是一个build时的简单配置工具,而是一个“软件安装工具”。
和Maven Filtering不同的是,AutoConfig是针对目标文件的配置工具。因此AutoConfig关心的目录结构是目标文件的目录结构
同时一般来说AutoConfig配置的属性 与应用逻辑无关,只和当前环境和当前系统用户有关

--------------------------------------------------------------------------------------------------------------------------------

AutoConfig使用方法

1)明确autoconfig配置的应用程序目录结构
AutoConfig是针对目标文件的配置工具。因此在使用中需要关注目标文件的目录结构。

-------war
创建war包的AutoConfig机制,关键在于创建war目标文件中的 /META-INF/autoconf/auto-config.xml 描述文件。
该描述文件对应的maven项目源文件为: /src/main/webapp/META-INF/autoconf/auto-config.xml

-------jar
  创建jar包的AutoConfig机制,关键在于创建jar目标文件中的/META-INF/autoconf/auto-config.xml描述文件。
该描述文件对应的maven项目源文件为:/src/main/resources/META-INF/autoconf/auto-config.xml

-------AutoConfig也支持对普通文件目录进行配置。

2)auto-config.xml描述文件的编写
-------定义properties:properties的名称、描述、默认值、约束条件等信息;
-------指定包含placeholders的模板文件。

3)使用auto-config进行配置的属性的xml文件模板位置建议
4)如何调用AutoConfig完成配置?
-------在命令行上直接运行
-------在maven中调用AutoConfig plugin
pom.xml中的配置

-------------------------------------------------------------------------------------------------------------------------

AutoConfig文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值