<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont

简介:       在一些项目开发中,为了使项目具有灵活配置的特性通常会使用配置文件,把一些常用的属性数据通过配置文件的方式引入系统。

      在一些项目开发中,为了使项目具有灵活配置的特性通常会使用配置文件,把一些常用的属性数据通过配置文件的方式引入系统。然而,当这些属性文件中数据变得越来越多的时候,问题还是出现了。

      加入配置文件的数据总结起来大致有以下几类:系统属性(比如系统首页地址等)、通用属性(比如性别等)、行业属性(比如官衔等)、以及用户自定义属性等。刚开始的时候,可能项目比较小,而且只是针对单一客户的,当客户有了修改这些属性数据的需求时,就直接去修改属性配置文件,谁也不愿意去考虑这写数据保存在属性配置文件中到底合适不合适。可是,随着项目逐渐完善,不同模块之间的属性配置文件个数越来越多,文件也变得越来越大,维护的工作量也相应增多,属性配置文件的问题就暴露出来了。

      无论是使用Properties文件,还是XML文件,或者其他的属性配置文件,当文件个数变多,数据量变大之后,维护起来都很费劲。尤其是项目面临产品化的时候,一个项目做成熟之后,可能会被很多客户使用,不同的客户有不同的属性配置需求,如果有几百甚至几千个客户,属性文件修改的工作量可想而知,给项目实施增加了不少难度。其实,最严峻的问题还不在这里,由于属性配置文件里保存的数据都是由固定格式要求的,如果格式错乱就不能正常解析,所以在修改属性配置文件的时候还需要额外小心,否则可能就会造成系统异常。

      对于属性配置文件暴露出来的问题,我个人认为,需要把系统属性相关的数据进行分类处理。我们不能单纯地认为因为属性配置文件有问题就不能用,更重要的是要搞清楚哪些数据才适合放在属性配置文件里。对于系统属性,如果是个性化的系统属性尽量不要放在属性配置文件中,包括行业属性,因为不同的地区可能同一个行业的业务也多多少少有差别,这些数据可以通过系统中的系统维护模块操作数据库来维护。而对于通用属性,相对比较固定,则可以通过属性配置文件来维护。可能对于一些小项目来说,系统维护模块还没有,但是对于一个成熟的项目,我个人认为,还是有必要包含系统维护模块的,提供一些维护系统的常用功能。

     近期,做的一个项目面临了这个问题,所以就写了下来,如果有更好的处理方式,就一起交流下吧,欢迎留言~

 

 

 

 

相关文章
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
最近在线上往hbase导数据,因为hbase写入能力比较强,没有太在意写的问题。让业务方进行历史数据的导入操作,中间发现一个问题,写入速度太快,并且业务数据集中到其中一个region,这个region无法split掉,处于不可用状态。
1569 0
|
Web App开发 监控 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
Hbase依赖的datanode日志中如果出现如下报错信息:DataXceiverjava.io.EOFException: INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in receiveBlock for block  解决办法:Hbase侧配置的dfs.socket.timeout值过小,与DataNode侧配置的 dfs.socket.timeout的配置不一致,将hbase和datanode的该配置调成大并一致。
985 0
|
Web App开发 Linux
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
内存是影响Linux性能的主要因素之一,内存资源的充足与否直接影响应用系统的使用性能。 free命令:监控Linux内存使用状况。
1414 0
|
Web App开发 数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
可伸缩系统的架构经验 Feb 27th, 2013 | Comments 最近,阅读了Will Larson的文章Introduction to Architecting System for Scale,感觉很有价值。
2545 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
如何获取设备特征码、版本号、激活码?方式一 第一步:打开凯立德移动导航系统,进入地图界面,点击“查找”第二步:在查找页面以“快拼”的输入方式下,输入“AAAAAA”(6个A)
1173 0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
在上一期的专栏文章中,我们曾经提到:数据分析系统的总体架构分为四个部分 —— 源系统、数据仓库、多维数据库、客户端(图一:pic1.bmp) 其中,数据仓库(DW)起到了数据大集中的作用。
1300 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
一个典型的星型模式包括一个大型的事实表和一组逻辑上围绕这个事实表的维度表。  事实表是星型模型的核心,事实表由主键和度量数据两部分组成。
673 0
|
Web App开发 前端开发 大数据
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
数据案例-蓝米手机的精准广告营销 2016-01-25 劲说 背景介绍:假设我是大米手机的数据分析师大傅,今天收到市场运营小旋同学的春节投放需求,在大米平台的DMP投放展示广告,做促销蓝米手机活动,投放预算是100万,同时悄悄告诉我,如果投放ROI超过2,她们市场运营总监设立奖励金额为(n-2)*1万的奖金。
839 0

热门文章

最新文章