将托管bean保存到备注文档

时间:2012-11-28 22:30:30

标签: java javabeans xpages lotus-domino

在托管bean中,您有字段,字段包含getter和setter。 但是我还需要将值保存回来,在本例中是一个Notes配置文件。 所以我有loadProfileDocumentsaveProfileDocument方法。 我在考虑在应用程序范围内使用bean。

如何确保保存配置文件?

我是否必须从二传手处拨打saveProfileDocument? 我打电话给saveProfileDocument()吗? 我可以使用析构函数(finalize)吗? 或者是...... ??? ...

2 个答案:

答案 0 :(得分:2)

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

有关在应用程序中使用相当广泛的此方法的示例,请检查OpenNTF上的WatrCoolr项目的来源。

Jesse Gallagher还创建了一个custom data source,允许相当透明地使用这种技术。

答案 1 :(得分:1)

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

要回答您的问题,您必须确定更新的频率。如果您不时更新单个属性,那么在setter中调用的save是不错的选择。对于批量处理的许多属性/字段的更新,相同的方法会表现不佳。

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