博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何让你的系统配置文件更合理
阅读量:5938 次
发布时间:2019-06-19

本文共 1347 字,大约阅读时间需要 4 分钟。

将系统中全局的,容易发生变化的数据,但调用频繁的常量信息存储在文件中是个不错的选择,原因有以下几点:

1 由于操作频繁,放在文件里可以减低数据库的负载

2 由于信息是全局的,所以放在文件中,对于所有层都可以开放

3 由于它容易发生变化 ,所以写死在代码中,不是一个聪明的作法,放在文件中可以不用编译,就可以使信息同步到程序上

4 操作频繁,放在文件中,这事实上对于服务器的CPU来说不是一件好事,所以,在这里将会对它进行缓存,本例没有使用cache

实现:一个VConfig层,进行公用配置信息管理和配置功能代码管理

Entity目录下是所有公用信息的实体,webconst.cs文件表示系统公用信息实体

ConfigFilesManager类型,是对配置文件进行读写操作的类

ConfigSerialize类型,提供了对文件序列化和反序列化操作的类

IConfiger接口,它是所有配置实体的基接口

WebConstConfig类型,对webconst实体进行了读写操作的类,这本类中,提供了从文件中使用了Elapsed事件,来实现每隔一段时间去文件中读取最新数据

这是它的核心代码:

///     /// 静态构造函数初始化
///        static WebConstConfig()       {           cfm = new ConfigFilesManager(ConfigFilePath, typeof(WebConst));           baseConfig = (WebConst)cfm.LoadConfig();           baseConfigTimer.AutoReset = true;           baseConfigTimer.Enabled = true;           baseConfigTimer.Elapsed += new ElapsedEventHandler(Timer_Elapsed);           baseConfigTimer.Start();       }       #endregion       #region 重设配置类实例
///        /// 重设配置类实例
///        public static void ResetConfig()       {           baseConfig = (WebConst)cfm.LoadRealConfig();       }       private static void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)       {           ResetConfig();       }对于 VConfig这个项目,我会在以后的开发中进一步的完善,因为,在开发一个新项目时,我不希望去修改我的vconfig项目,只从vconfig项目中去派生就可以了,在自己的新项目中去重写和扩展自己的业务逻辑。

感谢大家!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
Apache Spark源码走读之12 -- Hive on Spark运行环境搭建
查看>>
阿里云跨服务器文件拷贝
查看>>
GetWindowRect
查看>>
6.<1>四则运算的研究[栈]
查看>>
java程序员笑不死的经历ส้้้้้้้้้
查看>>
php-fpm配置
查看>>
c++头文件和#include 学习笔记
查看>>
第四天(考试)
查看>>
关于VUE的路由地址问题
查看>>
node-buffer解读
查看>>
Vue 2.x折腾记 - (22) Vue 打包图片在safari不显示的问题
查看>>
ES6中的class
查看>>
iOS - swift项目接入bugly - 报错, 配置符号表,下载Java环境,
查看>>
oracle sql语句实现累加、累减、累乘、累除
查看>>
SCNetworkReachabilityRef监测网络状态
查看>>
3D地图的定时高亮和点击事件(基于echarts)
查看>>
接口由40秒到200ms优化记录
查看>>
java 视频播放 多人及时弹幕技术 代码生成器 websocket springmvc mybatis SSM
查看>>
Activiti6.0,spring5,SSM,工作流引擎,OA
查看>>
第十三章:SpringCloud Config Client的配置
查看>>