我已經開發了一個使用Spring Boot的小應用程序,該應用程序暫時使用HSQLDB作爲數據庫來存儲用戶。我想要做的是將數據庫存儲在Maven的資源文件夾中。我application.properties文件包含以下配置:WAR中的資源中的HSQLDB
#...
spring.datasource.url=jdbc:hsqldb:file:src/main/resources/database/dashboard
#...
所以,當我開始使用Java應用程序(右鍵點擊我的應用程序的main()和運行方式春季啓動應用程序),數據庫存儲的權利。
但是,在將WAR文件打包爲mvn clean install spring-boot:repackage
後,將其部署到Tomcat(例如並運行它)後,數據庫不存儲在爆炸WAR中。
我的問題是我怎麼能告訴spring.datasource.url=jdbc:hsqldb:file:*
屬性來存儲Maven資源目錄中的數據庫(它將在爆炸WAR後仍然指向)?我可以使用pom.xml中使用的某種環境變量嗎?
編輯 鑑於@Steve C和@fredt的答案,我意識到數據庫不應該存儲在戰爭中。相反,我會將其存儲在用戶的主目錄spring.datasource.url=jdbc:hsqldb:file:~/tomcat_webapp_data/dashboard/database
..非常感謝!
您似乎正在使用相對路徑指向hsqldb。 Hsql的文件位置將相對於工作目錄(可能是bin/in tomcat /)。你應該使用絕對路徑。 – Redlab
1)更好的使用Apache Derby,HSQLDB總是被完全加載到RAM內存中 - 這可能會讓你的應用程序更大的DB 2)只是改變構建腳本包括整個db目錄iinto war,然後一定要有正確的路徑db在服務器容器中的文件 –
@Redlab我不想使用絕對路徑,因爲我不知道將要放置WAR的系統的性質(linux,win ...)以及它是否會運行與java。 – russellhoff