我正在尝试在Weblogic服务器上部署我的应用程序,我的应用程序有一个内存数据库,并且由于我将HSQLDB用于JUNIT,所以我希望保留HSQL作为内存数据库(主要是比derby更好的性能)。由于weblogic已经有了derby,因此当我尝试部署应用程序时,derby而不是HSQL正在入门。在初步调查中,我发现由于Derby是在EmbeddedDatabaseConnection.java中的HSQL之上定义的,因此首先启动Derby数据库。是否有任何特定的配置,我可以将数据库类型显式地嵌入到HSQL中,而不是允许spring boot根据库/类启动数据库
最佳答案
我能想到的第一个尝试是从类路径中删除Derby,仅在其中保留HSQL。 Spring Boot docs:
如果HSQLDB在您的类路径上,并且尚未手动配置
任何数据库连接Bean,那么我们将自动配置
内存数据库。
如果不是这样,您可以指定
connection type for Hibernate (JPA):
通过查看“连接”类型,可以检测到嵌入式数据库:hsqldb,h2和derby是嵌入式的,其余的则不是。
HSQL明确地作为主要数据源:
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.HSQL)
.build();
}
}
定义
spring.datasource.type
属性