2

在托管 bean 中,您有字段,并且字段具有 getter 和 setter。但在这种情况下,我还需要将值保存回 Notes 配置文件。所以我有一个loadProfileDocument和一个saveProfileDocument方法。我正在考虑在应用程序范围内使用 bean。

如何确保配置文件已保存?

我必须打电话给saveProfileDocument二传手吗?我要saveProfileDocument()明确地打电话吗?我可以使用析构函数(最终确定)吗?要不然是啥...???...

4

2 回答 2

2

您可能需要考虑使用所谓的“MIMEBean”方法,它将 bean 的状态序列化为文档上的 MIME 项。使用这种方法,您的 bean 字段可以是分层的(对象中的对象中的对象),只要每个对象也是可序列化的。这比通常的平面数据结构提供了更大的灵活性,其中一个字段 = 一个原始值(或值向量)。

有关在应用程序中广泛使用的这种方法的示例,请查看 OpenNTF 上的 WatrCoolr 项目的源代码。

Jesse Gallagher 还创建了一个自定义数据源,允许相当透明地使用该技术。

于 2012-11-29T13:48:47.103 回答
1

不要使用配置文件。正如@Sven Hasselbach 提到的,HTTP 任务的每个线程都有自己的配置文件缓存副本(配置文件被设计缓存)并且保存在一个线程中不会填充到其他线程。通常需要重新启动 HTTP 任务来修复混乱。

要回答您的问题,您必须确定更新频率。如果您不时更新单个属性,则在 setter 中调用 save 是不错的选择。对于批量更新许多属性/字段,相同的方法会执行得很差。

好的权衡是在 setter 中设置脏标志并在 afterRenderResponse 中调用 save 方法,以有条件地将 bean 状态保存到后端文档。对于请求范围的 bean,不需要清除脏标志,对于其他范围,不要忘记在保存后重置它。

于 2012-11-29T00:32:54.693 回答