配置H2进行春季启动

use*_*544 5 h2 spring-boot

我正在尝试配置spring boot以将我的测试数据源设置为在PostgreSQL模式下使用h2。我在测试/资源/应用程序中设置以下行:

spring.datasource.url=jdbc:h2:mem:db1;MODE=PostgreSQL
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
Run Code Online (Sandbox Code Playgroud)

但是Spring Boot继续为我加载默认的h2配置。

如何强制Spring Boot使用我的特殊h2配置?

小智 2

只需在 java 配置中执行此操作,如下所示:

    @Configuration
@EnableAutoConfiguration
@Profile({ "dev", "demo" })
public class EmbeddedDatabaseConfiguration {
    @Bean(name = "dataSource")
    public DriverManagerDataSource getDataSource() {
        DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
        driverManagerDataSource.setDriverClassName("org.h2.Driver");
        driverManagerDataSource.setUrl("jdbc:h2:mem:mylivedata;IGNORECASE=TRUE;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1");
        return driverManagerDataSource;
    }
}
Run Code Online (Sandbox Code Playgroud)