1

我打算为PortletPreferences类编写一个静态类。因为每次调用PortletPreferences.getValue()时,我都会调用内部门户数据库来获取值。我调用PortletPreference.setValue()PortletPreferences.store()将其保存在数据库中。每次我更改首选项时,都会有一个数据库调用。我想优化我的代码的性能。我正在寻找帮助和建议,我如何才能做到这一点。

我有一个我不确定是否正确的想法。我可以编写一个静态 Map 类来实现这一点吗?如果我错了,请纠正我。谢谢 !

4

1 回答 1

0

如果您打算让首选项本质上是“只读”并且对每个用户都相同,那么将它们加载到地图一次然后总是在内存中而不是通过 API 访问它们应该没问题。

但是,如果您计划更改 portlet 首选项(无需重新启动 portlet 应用程序)或者如果允许用户为首选项设置自己的值,则应该小心。在这两种情况下,值都是动态的,可能每次都应该获取。您不希望有人更新偏好而没有看到它具有预期的影响。您也不希望一个用户使用另一个用户保存的首选项值。

在地图中存储首选项本质上是创建一个共享缓存,您必须手动更新它,而不是让 API 来做。如果这种缓存的含义符合您的要求,那么一定要去做。

于 2012-11-19T23:26:52.320 回答