在内存H2数据库中设置没有Spring Boot

时间:2018-06-08 11:39:55

标签: spring h2

我在春季5(非Sprig Boot)项目中工作。我需要在内存H2数据库中测试我的应用程序。我在maven构建工具上使用Spring with Java Config。反正我可以在内存H2 DB中配置吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

通常我会在$result = array_column($arr, "value", "name"); 课程中使用它:

@Config

所以我在我的春季项目中使用Spring Embedded DB(我不使用spring boot)

我希望它有用。

答案 1 :(得分:0)

您可以使用EmbeddedDatabaseBuilder来添加DataSource bean,如下所示:

@Bean
public DataSource dataSource(
        @Value("${datasource.dbname}") String dbname,
        @Value("${datasource.script}") String script) {

    return new EmbeddedDatabaseBuilder()
            .setType(EmbeddedDatabaseType.H2)
            .setName(dbname)
            .addScript(script)
            .build();
}

application.properties

datasource.dbname=users
datasource.script=classpath:resources/users.sql

您还可以按如下所示在应用程序配置类中注册h2-console servlet:

@Configuration
public class WebAppConfig implements WebApplicationInitializer {
    @Override
    public void onStartup(ServletContext servletContext) {
        . . .

        servletContext
                .addServlet("H2Console", WebServlet.class)
                .addMapping("/console/*");

        . . .
    }
}

然后,您可以打开http://localhost:8080/console并按如下所示连接到jdbc:h2:mem:users数据库:

login.jsp


另请参见How to enable h2-console in spring-webmvc without spring-boot?