常用参数应保存在配置文件中还是数据库中?

niuzhouhai 2015-04-09 08:56:08
300个用户的系统,有若干参数是公共参数,几乎每个用户都会用到的公共参数,如果这些参数保存在数据库中,每个用户都要反复多次访问数据库获取这些参数,这样觉得似乎很浪费资源. 是不是应该保存在配置文件中? 但感觉好像也是差不多的情况, 各位是怎么做的?
...全文
2824 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhld456 2019-05-16
  • 打赏
  • 举报
回复 2
我感觉放在数据库好,然后可以创建一个参数工具类将参数存在静态map中,系统启动后初始化访问数据库一次,以后每次改配置后,页面提供一个同步参数功能,将数据库参数同步到map中
  • 打赏
  • 举报
回复
引用 17 楼 gzronald70 的回复:
EhCache 据说是最常用的,是吗?
EhCache确实挺好用的,具体如何使用,你可以参考这篇文章,写的比较详细 http://www.cnblogs.com/hoojo/archive/2012/07/12/2587556.html#undefined
master_y 2015-04-15
  • 打赏
  • 举报
回复
如果是公共的参数,我感觉还是配在文件里面,然后可以静态注入到每个用户,这样会好一点,没必要放数据库
liangtu 2015-04-09
  • 打赏
  • 举报
回复
引用 17 楼 gzronald70 的回复:
EhCache 据说是最常用的,是吗?
分布式的可以用memcached,单台机器就到内存。
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
EhCache 据说是最常用的,是吗?
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
引用 2 楼 liangtu33 的回复:
都行,启动时加到缓存就行。
缓存到内存中,应该用哪个? OSCache 是最常用的吗?
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
引用 11 楼 wangxf_8341 的回复:
既然是公共参数,不管是放到配置文件中还是数据库中,都应该放到缓存中,做法是放到某各类的static变量中 如果这些公共参数在系统运行的时候有可能会发生改变,那么放到数据库中是比较好的,这样改了数据库,刷新一下缓存就可以,不用重启应用,如果在运行时不会改变,最好是放到配置文件中,这样一目了然,开发这个系统的人想要查某个参数的值就很容易
OSCache怎么样?你是用哪一个来做缓存的?我需要缓存到内存中
Cactus_hxk 2015-04-09
  • 打赏
  • 举报
回复
引用 13 楼 gzronald70 的回复:
[quote=引用 12 楼 huiwenjie168 的回复:] [quote=引用 9 楼 gzronald70 的回复:] [quote=引用 8 楼 huiwenjie168 的回复:] 你可以写一个静态的集合,项目启动初始化就可以了,当项目关掉会自动销毁的!
但这个是写在源代码中的,这样不方便用户自己修改配置文件. 我们已经有部分参数就是这样做的,这部分参数是不允许用户自己修改的.但现在有些参数是要留给用户自己可以修改的.只能保存在配置文件或者数据库中[/quote] 我的这个是针对那些不经常去改变的数据用该方法比较好,如果你的数据会经常修改,建议存入数据库!配置文件这种方法是对那些一直不变的数据,配置在里面比较好![/quote] 我说的这些参数不需要经常改变.只是软件给不同的客户,他们自己需要修改配置,通常只是一次性修改配置.[/quote] 这样的话,只能用数据库,如果你用缓存存的话,当系统在重新启动,用户必须再次重新设置他的配置,
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
引用 12 楼 huiwenjie168 的回复:
[quote=引用 9 楼 gzronald70 的回复:] [quote=引用 8 楼 huiwenjie168 的回复:] 你可以写一个静态的集合,项目启动初始化就可以了,当项目关掉会自动销毁的!
但这个是写在源代码中的,这样不方便用户自己修改配置文件. 我们已经有部分参数就是这样做的,这部分参数是不允许用户自己修改的.但现在有些参数是要留给用户自己可以修改的.只能保存在配置文件或者数据库中[/quote] 我的这个是针对那些不经常去改变的数据用该方法比较好,如果你的数据会经常修改,建议存入数据库!配置文件这种方法是对那些一直不变的数据,配置在里面比较好![/quote] 我说的这些参数不需要经常改变.只是软件给不同的客户,他们自己需要修改配置,通常只是一次性修改配置.
Cactus_hxk 2015-04-09
  • 打赏
  • 举报
回复
引用 9 楼 gzronald70 的回复:
[quote=引用 8 楼 huiwenjie168 的回复:] 你可以写一个静态的集合,项目启动初始化就可以了,当项目关掉会自动销毁的!
但这个是写在源代码中的,这样不方便用户自己修改配置文件. 我们已经有部分参数就是这样做的,这部分参数是不允许用户自己修改的.但现在有些参数是要留给用户自己可以修改的.只能保存在配置文件或者数据库中[/quote] 我的这个是针对那些不经常去改变的数据用该方法比较好,如果你的数据会经常修改,建议存入数据库!配置文件这种方法是对那些一直不变的数据,配置在里面比较好!
淡定的峰哥 2015-04-09
  • 打赏
  • 举报
回复
既然是公共参数,不管是放到配置文件中还是数据库中,都应该放到缓存中,做法是放到某各类的static变量中 如果这些公共参数在系统运行的时候有可能会发生改变,那么放到数据库中是比较好的,这样改了数据库,刷新一下缓存就可以,不用重启应用,如果在运行时不会改变,最好是放到配置文件中,这样一目了然,开发这个系统的人想要查某个参数的值就很容易
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
引用 8 楼 huiwenjie168 的回复:
你可以写一个静态的集合,项目启动初始化就可以了,当项目关掉会自动销毁的!
初始化是什么意思?是只缓存吗?
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
引用 8 楼 huiwenjie168 的回复:
你可以写一个静态的集合,项目启动初始化就可以了,当项目关掉会自动销毁的!
但这个是写在源代码中的,这样不方便用户自己修改配置文件. 我们已经有部分参数就是这样做的,这部分参数是不允许用户自己修改的.但现在有些参数是要留给用户自己可以修改的.只能保存在配置文件或者数据库中
Cactus_hxk 2015-04-09
  • 打赏
  • 举报
回复
你可以写一个静态的集合,项目启动初始化就可以了,当项目关掉会自动销毁的!
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
引用 5 楼 t_jl1979 的回复:
数据库,清晰的业务逻辑更重要。
我也倾向于数据库,因为不同的客户的数据都保存在数据库中,这样不用去为不同的客户管理不同的配置文件版本. 但是能不能一次加载所有用户公用呢?
liangtu 2015-04-09
  • 打赏
  • 举报
回复
引用 4 楼 gzronald70 的回复:
[quote=引用 2 楼 liangtu33 的回复:] 都行,启动时加到缓存就行。
缓存是什么意思?是每个用户访问都要单独缓存吗?还是可以在服务器上缓存所有用户共同调用?[/quote] 共用缓存。
冥王之锤 2015-04-09
  • 打赏
  • 举报
回复
数据库,清晰的业务逻辑更重要。
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
引用 2 楼 liangtu33 的回复:
都行,启动时加到缓存就行。
缓存是什么意思?是每个用户访问都要单独缓存吗?还是可以在服务器上缓存所有用户共同调用?
niuzhouhai 2015-04-09
  • 打赏
  • 举报
回复
引用 楼主 gzronald70 的回复:
300个用户的系统,有若干参数是公共参数,几乎每个用户都会用到的公共参数,如果这些参数保存在数据库中,每个用户都要反复多次访问数据库获取这些参数,这样觉得似乎很浪费资源. 是不是应该保存在配置文件中? 但感觉好像也是差不多的情况, 各位是怎么做的?
访问数据库虽然不慢,但是同一个用户都要反复多次访问数据库,比较浪费资源,我的意思是,就算是同一个用户,每次访问一个功能的时候都会再去访问一次数据库获取这些参数.并且由于这些参数对于所有用户都是共用的相同的,其他用户又要同样的重复访问这些参数,是不是我想的太多了?
liangtu 2015-04-09
  • 打赏
  • 举报
回复
都行,启动时加到缓存就行。
加载更多回复(2)

67,545

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧