2012-08-13 76 views
1

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

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

+0

什么[范围](http://www.lotus.com/ldd/portalwiki.nsf/dx/Preference_layers_and_portlet_modes_wp7)是您的偏好? – McDowell 2012-08-13 09:32:20

+0

现在它仅适用于管理员首选项。 – user525146 2012-08-13 14:19:55

+0

@McDowell你能指导我正确的方向吗? – user525146 2012-08-20 19:10:57

回答

0

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

但是,如果您打算更改Portlet首选项(不重新启动Portlet应用程序)或允许用户为首选项设置自己的值,那么您应该小心。在这两种情况下,这些值都是动态的,并且应该每次都可以提取。你不希望有人更新首选项,但没有看到它有预期的影响。您也不希望一个用户使用另一个用户保存的首选项值。

在Map中存储首选项本质上是创建一个共享缓存,您必须手动更新而不是让API执行它。如果这种缓存的含义可以满足您的要求,那么请尽一切努力。