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

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

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

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

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

转载于:https://www.cnblogs.com/wenlong/archive/2012/02/24/2375405.html

关于项目中属性配置文件的改进相关推荐

  1. IDEA springboot项目中properties配置文件 {针对将对应GBK改为UTF-8并勾选转为ASCII后仍无效情况} 运行时中文乱码解决

    springboot项目中properties配置文件中,运行时中文乱码情况 file encoding里边进行设置,设为utf-8并勾选转为ascii,分别在setting.setting for ...

  2. 类项目中的配置文件app.config在打包安装后的信息获取的问题

    在一个项目中碰到这样的一个问题,做一个WORD插件,功能在类库项目中实现了,配置信息存在类库项目的配置文件app.config中,在进行打包后,获取的配置文件中的DocType节点信息时,使用以下方法 ...

  3. js 读取json文件_JavaScript 项目中常见配置文件介绍

    原文地址:https://github.com/whinc/blog/issues/14 本文介绍一些前端项目的通用配置及相关资源,以便你了解项目中常见配置的含义以及配置方式. .gitignore ...

  4. SpringBoot 项目中 YML 配置文件的使用

    本篇文章用于总结 YML 配置文件的使用,如果错误之处,请批评指正,希望观众老爷们多多支持! 1. 概述 YML 是什么? YML (YAML Aint't a Martup Language) YA ...

  5. SpringBoot项目中ShiroConfig 配置文件无法注入bean和使用@Value注解的问题

    在开发项目过程中,shiro配置类使用@Autowired无法将bean注入到spring容器中,并且使用@Value无法从配置文件中获取值的问题.查询得知需要将下面这个类改为static才正常,具体 ...

  6. ThinkPHP公共配置文件与各自项目中配置文件组合的方法

    ThinkPHP公共配置文件与各自项目中配置文件组合的方法 文章TAG:thinkphp 公共配置文件 时间:2014-11-25来源:www.aspku.com 作者:源码库 文章热度: 146 ℃ ...

  7. Vue项目搭建常用配置文件!

    1.前端跨域解决方案 request.js用来请求数据,封装的代码如下: request.js :在vue/src/utils 之下 ~ import axios from 'axios'​const ...

  8. Node.js项目中动态加载环境变量配置

    NODE_MODULES:项目中动态加载环境变量配置 开始 在平时的 Node.js 项目开发中,我们需要在项目中添加各种各样的配置:服务端口.服务地址.图片上传.数据库.Redis 等等. 通常情况 ...

  9. Java项目中数据库从mysql 5.7更换到mysql8.0.18版本

    我们从网上下载或者购买一个项目之后,要想在本地运行起来,首先要做的事情就是查看所需要的环境是否一致,即Tomcat/IDEA/JDK/Mysql等版本要保持一致.今天主要来说一下我经常遇到的一些数据库 ...

最新文章

  1. 实现Windows Phone、Android和iOS平台的统一硬件访问
  2. 利用FastJSON 把list和map转换成Json
  3. 第二十一章:变换(三)
  4. 深入理解Redis系列之SpringBoot集成Redis
  5. HTML-HTML基本语法和标签
  6. 用 Windows Media Center 免费看大片 (二)
  7. new Random().nextInt
  8. Atitit 迭代法  “二分法”和“牛顿迭代法 attilax总结
  9. 没有IDEA与Eclipse,该怎么学Java?
  10. 速看,成都市关于促进低效工业用地企业提质增效的信息
  11. Duilib学习笔记(一)—— 环境搭建
  12. npm install 报错 npm ERR! errno ETIMEDOUT
  13. 网络——设备冗余HSRP
  14. 计算机笔记本摄像头无法使用,笔记本摄像头不能用怎么回事 笔记本摄像头不能用解决方法...
  15. 2020五四青年节 | 青年人在美团是怎样成长的?
  16. 计算机科学与计算机技术!
  17. Q-learning例1探索者【学习笔记3】
  18. Python生成密码字典教程
  19. ASP]在網頁中下SQL查詢.其結果轉成Excel檔
  20. 抖音短视频编辑工具EffectCreator 6.4.0中文版

热门文章

  1. 游戏光线追踪往事:十年技术轮回
  2. Oracle:select 或 inactive 会话语句产生锁?
  3. 天谕手游里的NPC真的很好看,画风特别的靓,背景音乐是万茜唱的
  4. Mysql重置初始密码的方法
  5. plsql学习范例--使用utl_file包将查询结果输出到文件中
  6. CSS transition 的默认值
  7. 人不能两次踏进同一条河流
  8. Linux学习之一-从三个重要人物的故事和一张思维导图说起
  9. 如何制作Windows镜像
  10. python基础: String类型