gpt4 book ai didi

java - 应用程序数据持久性框架/库?

转载 作者:太空宇宙 更新时间:2023-11-04 08:33:14 24 4
gpt4 key购买 nike

我们的 Java 桌面应用程序正在管理用户编辑的多个文本文件。

目前,这些文件使用内部 Java 代码保存到文件系统中。我们希望摆脱这种情况并使用现有的框架/库(最好是开源的);如果能够在运行时配置实际的持久存储:“文件系统”与“数据库”,那就太好了。

除了 JCR 实现(例如 JackRabbit)之外,还有其他可能的解决方案吗?对于在我们的用例中使用 JCR 有什么反馈/建议吗?

谢谢。

最佳答案

JCR 存储库的好处之一是它从数据持久化方式中抽象出应用程序,但仍然提供分层组织、查询、搜索、事件等。

ModeShape是一种 JCR 实现,它在数据存储方式方面提供了很大的灵 active 。它的connectors允许访问和/或存储文件系统 ( two choices ) 上的内容,位于 relational database 中(支持许多 DBMS),在 data grid 中(例如 Infinispan),位于 SVN ,组合(通过 federation ),甚至 in-memory (适用于较小、不太关键的用途)。可以使用fluent programmatic API配置ModeShape ,但是一旦启动引擎,您就无法更改连接器。

(全面披露:我是项目负责人。)

因此,对于在文件系统上存储文件的用例,通过 ModeShape 及其文件系统连接器,您的应用程序可以使用 JCR API 来访问(和操作)现有的文件和文件夹结构,同时让其他应用程序仍然通过文件系统访问相同的文件和文件夹。通过此连接器,您的应用程序可以选择 store extra properties在文件和文件夹节点上,但您只能创建文件和文件夹节点。

您的用例的另一个选择是使用 ModeShape 的磁盘连接器,它允许您的应用程序创建文件、文件夹和其他内容并将信息存储在磁盘上。该连接器比文件系统连接器功能强大得多,因为它可以存储任何内容(而且速度非常快)。它还将存储库内容作为文件保留在文件系统上,但它使用的结构与存储库的组织方式不同。 IOW,磁盘连接器的设计并不是为了让其他应用程序可以使用文件系统来访问您存储在存储库中的文件。如果后者并不重要,并且您只是在寻找一种在文件系统上管理和存储内容的方法,那么磁盘连接器将是一个很好的选择。

关于java - 应用程序数据持久性框架/库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7004849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com