我试图找到什么是“静态/全局”的常规设计/方法! Web应用程序中的数据访问/存储,我正在使用Struts2.背景,我要在Web应用程序中显示许多表.
问题1
这些表每天只会在服务器上更改和更新一次,我不想访问数据库或为每个查看表的请求加载文件.
我希望将表一次(一天)加载到某个全局内存/缓存中,并且每个请求都从那里获取表,而不是访问数据库.
我想这是一个常见的情况,是否有既定的方法?但目前我找不到它.
对于支柱2,ActionContext是否是此数据的正确位置.
如果是这样,将非常感谢您教程的任何链接.
问题2
这些表存储在一个我用JAXB解组的XML文件中,以获取表对象,以及表的列表.
对于小型应用程序来说,这是可以的,但是对于Web应用程序,我认为它很容易将xml存储为资源并以servlet上下文的形式读取文件并进行解析,是吗?
我意识到可能会告诉我将表存储到使用dao访问的数据库,并使用休眠获取对象.
我只是想知道已经存储在XML文件中的数据的通常处理方式是什么?鉴于我每天都会有新的XML文件.
如果问题是基本的,我很抱歉,我有大量的书籍/参考资料,但是花时间才能获得更高级别的设计答案.
解决方法:
这并不是真正针对Struts2的.您绝对不想尝试将此信息存储在ActionContext中-这是每个请求的对象.
您应该研究诸如EHCache之类的缓存框架.如果使用Hibernate来保持持久性,则Hibernate具有用于缓存数据的选项,因此不需要在每次请求时都访问数据库. (Hibernate也可以将EHCache用作其二级缓存).