jsp如何实现java web应用程序属性缓存?
我用servlets 3.0和Ajax构建了一个简单的web应用程序,没有使用freamwork
应用程序从数据库呈现GUI组件。为了避免数据库故障导致应用程序无法工作的情况,我正在考虑使用一种缓存来为请求提供服务,而不是为每个HTTP GET请求访问数据库。如果请求的属性在该缓存中不可用,则从数据库获取,添加到缓存并为请求提供服务
我在阅读有关属性文件和内存缓存实现的内容时,遇到了无状态bean和会话bean,感到困惑。那么,实现这一目标的途径是什么
附言:我不喜欢使用任何freamwork
# 1 楼答案
恐怕你在这里混淆视听
属性文件是包含键值对的纯文本文件,用于存储配置并在运行时读取它们。他们与你的问题几乎没有共同之处
无状态bean和状态bean又是不同的。statefull bean可能有一个内部状态。也就是说,对同一方法的两次调用可能会产生不同的结果,即使上下文(db内容等)没有改变
那么,实现缓存的方法是什么呢?没有用于缓存数据库请求的内置实用程序。最简单(但也是最幼稚)的方法是
但归根结底,您应该考虑为什么要自己实现缓存。对于你的问题(spring,hazelcast,etc…)有很多经过测试的解决方案。 你的问题表明not invented here syndrom
# 2 楼答案
根据您想做什么,有几种方法:
web缓存将允许您基于URL模式和请求参数缓存请求,并允许您使用Cacheonix web缓存进行简单的操作。在web层中缓存的好处是,应用程序不必花费时间等待数据库和呈现响应
缓存SQL请求有点复杂,但好处是您可以对数据库中的查询和缓存的结果集进行细粒度控制