我想为我的基于Spring的Web应用程序使用HSQLdb,并且希望数据持久化(因此内存不足)。根据hsqldb documentation,我可以在连接URL中使用变量 - 但文档没有说明如何设置这些变量。如何设置“web应用程序属性”以便HSQLDB可以使用它们?
我读过this question,并且有一些有趣的策略,比如创建一个监听器来在上下文加载时设置属性。
This question解释了如何获得适当的位置,所以我已经将这两种方法结合起来。我试过用侦听器设置一个新的属性,其路径从javax.servlet.context.tempdir
(这是一个File
),我试过直接使用该属性。这两种方法都无效。
One punter已评论说可以通过侦听器设置user.home
,然后在HSQLdb URL中使用~
。我还没有尝试过,但即使它确实有效,但我重新定义了一些我可能不想要的东西,这让我觉得它有点麻烦。我正在寻找“正确”的方式。我如何设置HSQLdb所称的“Web应用程序属性”? (或者是有一个,这将是合适的?)
从文档:
如果数据库URL中包含的
${propname}
则形式的字符串的字符序列替换为系统属性 与给定的名字。例如,您可以在网络应用程序中使用的 数据库的URL中使用该属性,并在Web应用程序属性中定义系统 属性"propname"
。在下面的例子中 ,字符串${mydbpath}
替换为 属性的值,mydbpath