我想爲我的基於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