从db加载常量并在包含文件中读取它们

时间:2010-01-05 15:28:34

标签: java spring

我有一个存储在数据库表中的常量值列表。我的应用程序的搜索表单由一个公共包含文件生成,该文件可以放在站点上的任何JSP页面中。此搜索表单应包含数据库表中的常量。 Spring bean管理数据库层,我无法找到一个合适的位置来加载常量。我尝试过以下方法:

  1. 使用静态方法加载常量。这种技术的问题是静态方法无法访问用于访问数据库的Spring bean。
  2. 在基本操作类中加载常量。这将导致在每次页面加载时查询数据库的常量。我可以通过在每个用户的会话中保存结果来略微降低性能损失,但这并不理想。
  3. 使用常量创建全局spring bean。我不知道如何从包含文件中访问这个全局类。
  4. 我还有其他选择吗?我希望能够从包含文件中干净地检索常量。

1 个答案:

答案 0 :(得分:0)

您需要的是缓存。所以你可以做的是在#2的情况下使用静态字段。当此字段为null时,您将获取数据并将其保存在字段中。问题:当数据库更改时,除非您清除该字段或重新启动应用程序,否则该字段不会更新。

对于#3,您无法访问全局类,但可以按名称访问bean,就像任何其他bean一样。再说一次,你会遇到陈旧问题。

要解决此问题,请添加包含时间戳(长整数)的第二个字段。更改字段时,请将其设置为System.currentTimeMillis()加一天。浏览包含文件时,请检查时间戳与当前时间。当它较旧时,再次获取值。