我想为我的基于 Spring 的 Web 应用程序使用 HSQLdb,并且我想让数据持久化(所以内存中没有了)。根据hsqldb 文档,我可以在连接 URL 中使用变量 - 但文档没有说明如何设置这些变量。
我读过这个问题,并且有一些有趣的策略,例如创建一个侦听器以在上下文加载时设置属性。
这个问题解释了如何获得合适的位置,所以我结合了这两种方法。我尝试使用侦听器设置一个新属性,路径从javax.servlet.context.tempdir
(它是 a File
)提升,我尝试直接使用该属性。这两种方法都不起作用。
一位赌客评论说,可以user.home
通过侦听器进行设置,然后~
在 HSQLdb URL 中使用。我没有尝试过,但即使它确实有效,我也觉得有点恶心,因为我重新定义了我可能不想做的事情。我正在寻找“正确”的方式。如何设置 HSQLdb 调用的“Web 应用程序属性”?(或者有合适的吗?)
从文档中:
如果数据库 URL 包含格式为的字符串,
${propname}
则字符序列将替换为具有给定名称的系统属性。例如,您可以在 Web 应用程序中使用的数据库的 URL 中使用它,并"propname"
在 Web 应用程序属性中定义系统属性。在下面的示例中,字符串${mydbpath}
被替换为属性的值,mydbpath