Spring 通过 Derby 引导启用特定的嵌入式数据库 HSQL
Spring Boot Enable Specific Embedded Database HSQL over Derby
我正在尝试将我的应用程序部署到 weblogic 服务器上,我的应用程序有一个内存数据库,并且由于我将 HSQLDB 用于 JUNIT,我想将 HSQL 保留为我的内存数据库(主要是性能稍微好一些超过德比)。由于 weblogic 已经有 derby,当我尝试部署应用程序时,derby 正在启动而不是 HSQL。在初步调查中,我发现由于 Derby 是在 EmbeddedDatabaseConnection.java 中的 HSQL 之上定义的,因此首先启动 Derby 数据库。是否有任何特定的配置,我可以在其中显式地将数据库类型嵌入到 HSQL 而不是允许 spring 启动基于 library/classes
的数据库
我能想到的第一个尝试是从 class 路径中删除 Derby,只留下 HSQL。 Spring Boot docs:
If HSQLDB is on your classpath, and you have not manually configured
any database connection beans, then we will auto-configure an
in-memory database.
如果这不是一个选项,您可以指定
An embedded database is detected by looking at the Connection type: hsqldb, h2 and derby are embedded, the rest are not.
HSQL 明确作为主要数据源:
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.HSQL)
.build();
}
}
定义 spring.datasource.type
属性
我正在尝试将我的应用程序部署到 weblogic 服务器上,我的应用程序有一个内存数据库,并且由于我将 HSQLDB 用于 JUNIT,我想将 HSQL 保留为我的内存数据库(主要是性能稍微好一些超过德比)。由于 weblogic 已经有 derby,当我尝试部署应用程序时,derby 正在启动而不是 HSQL。在初步调查中,我发现由于 Derby 是在 EmbeddedDatabaseConnection.java 中的 HSQL 之上定义的,因此首先启动 Derby 数据库。是否有任何特定的配置,我可以在其中显式地将数据库类型嵌入到 HSQL 而不是允许 spring 启动基于 library/classes
的数据库我能想到的第一个尝试是从 class 路径中删除 Derby,只留下 HSQL。 Spring Boot docs:
If HSQLDB is on your classpath, and you have not manually configured any database connection beans, then we will auto-configure an in-memory database.
如果这不是一个选项,您可以指定
An embedded database is detected by looking at the Connection type: hsqldb, h2 and derby are embedded, the rest are not.
HSQL 明确作为主要数据源:
@Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.HSQL) .build(); } }
定义
spring.datasource.type
属性