不使用XML配置而是使用@Configuration初始化数据库

我想知道如何初始化数据库而不必创建XML文件。

我已经使用了这种可以正常工作的初始化,但是在当前情况下,我不想创建XML:

<jdbc:initialize-database data-source="dataSource">

<jdbc:script location="classpath:com/foo/sql/db-schema.sql"/>

<jdbc:script location="classpath:com/foo/sql/db-test-data.sql"/>

</jdbc:initialize-database>

我知道我可以使用以下方法创建嵌入式数据库:

EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();

EmbeddedDatabase db = builder.setType(H2).addScript("my-schema.sql").addScript("my-test-data.sql").build();

就我而言,数据库和架构是使用Liquibase创建的。

我只想用Spring和我的自定义数据集来初始化它,而不必每次都为此创建一个新的XML文件。

可能吗?

回答:

在查看与EmbeddedDatabaseBuilder相关的Spring类之后,我发现DatabaseBuilder正在使用一些类似于以下的代码:

ResourceDatabasePopulator populator = new ResourceDatabasePopulator();

for (String sqlScript: sqlInitializationScripts ) {

Resource sqlScriptResource = RESOURCE_LOADER.getResource(sqlScript);

populator.addScript(sqlScriptResource);

}

DatabasePopulatorUtils.execute(populator, dataSource);

即使对@BeforeTest方法而不是在Spring配置上,这对我来说也很好。

以上是 不使用XML配置而是使用@Configuration初始化数据库 的全部内容, 来源链接: utcz.com/qa/404477.html

回到顶部