如何为 Spring Boot 应用程序外部化 data.sql

Posted

技术标签:

【中文标题】如何为 Spring Boot 应用程序外部化 data.sql【英文标题】:How to externalise data.sql for a spring boot app 【发布时间】:2018-01-18 16:07:26 【问题描述】:

如果我想用 spring boot 初始化我的 H2 数据库,我总是在我的资源文件夹中使用 data.sql 文件。

现在我需要使用 H2 数据库,还需要外部化 data.sql 以便在有任何更改时更新此文件。

我不想安装 mysql 或其他数据库,因为它是一个非常小的服务,包含几个数据库项,并且有时可能会重新启动此服务。

所以我的文件夹中有以下两个文件:我的 Spring Boot 应用程序的 uber jar 文件(嵌入了 Tomcat)和 data .sql 文件。

我如何才能像外部化 application.properties 的配置一样外部化 data.sql

【问题讨论】:

【参考方案1】:

运行jar的时候把它放到classpath中怎么样?

java -jar uber.jar -classpath "PATH_TO_YOUR_SQL_FILE"

【讨论】:

如果我的 data.sql 在 uber jar 的同一个文件夹中是:-classpath "data.sql"? 是的。再想一想,我不知道它是否会起作用,因为也许“-classpath”会覆盖 jar 在他的清单文件中声明的类路径。请让我知道它是否有效 谢谢,它不起作用。我正在尝试寻找新的解决方案。仍然无法将 data.sql 外部化似乎很奇怪。

以上是关于如何为 Spring Boot 应用程序外部化 data.sql的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat 中 Spring Boot War 文件的外部化配置

如何为 Spring Boot 应用程序的 gradle 构建设置活动配置文件?

如何为 Spring Boot 应用程序配置端口

如何为具有 Spring Security 配置的 Spring Boot API 编写单元测试

如何为我的 Spring Boot webapp 选择 URL?

如何为我的 Spring Boot 控制器执行单元测试?