方案: 我有存储在数据库中的州(美国)列表。我需要在form.jsp中显示状态列表。我查询数据库并获取referenceData方法中的状态列表,以便在表单加载时状态列表可用。
问题: 由于referenceData是在每次页面刷新时执行的,所以在每次刷新时查询数据库是不是拖动? Spring是在内部缓存还是每次都是一个昂贵的数据库查询调用?
在Spring中填充表单加载状态的最佳方法是什么?
答案 0 :(得分:1)
如果没有明确询问,Spring不会缓存任何内容。另一方面,您可以配置持久性提供程序(例如Hibernate query cache)或使用内置Spring caching abstraction。
在每次页面刷新时查询数据库是否过分?在你的情况下:固定列表很少变化,只有很少的项目 - 我甚至会说加载一次并保留它在应用程序的生命周期。如果您需要修改,请打开后门。或者使用具有很长失效日期的缓存。
另一方面,缓存通常很痛苦,尤其是在缓存验证发挥作用时。但在你的情况下,会出现什么问题? 着名的遗言