在托管bean中,您有字段,字段包含getter和setter。
但是我还需要将值保存回来,在本例中是一个Notes配置文件。
所以我有loadProfileDocument
和saveProfileDocument
方法。
我在考虑在应用程序范围内使用bean。
如何确保保存配置文件?
我是否必须从二传手处拨打saveProfileDocument
?
我打电话给saveProfileDocument()
吗?
我可以使用析构函数(finalize)吗?
或者是...... ??? ...
答案 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,不需要清除脏标志,因为其他范围不要忘记在保存后重置它。