29.1.1 Embedded Database Support

开发应用时使用内存数据库是很方便的。显然,内存数据库不提供持久化存储;你只需要在应用启动时填充数据库,在应用结束前预先清除数据。

‘How-to’章节包含 如何初始化数据库

Spring Boot可以自动配置的内嵌数据库包括H2, HSQL和Derby。你不需要提供任何连接URLs,只需要添加你想使用的内嵌数据库依赖。

如果你在测试中使用这个特性,你会发现不管你创建了多少个应用上下文(applciation context)你的所有测试用例都重复使用同一个数据库。如果你想确保每个上下文都有一个各自的嵌入式数据库,你需要设置spring.datasource.generate-unique-nametrue

示例:典型的POM依赖如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <scope>runtime</scope>
</dependency>

对于自动配置的内嵌数据库,你需要添加spring-jdbc依赖,在本示例中,spring-boot-starter-data-jpa已包含该依赖了。

无论出于什么原因,你需要配置内嵌数据库的连接URL,一定要确保数据库的自动关闭是禁用的。如果使用H2,你需要设置DB_CLOSE_ON_EXIT=FALSE。如果使用HSQLDB,你需要确保没使用shutdown=true。禁用数据库的自动关闭可以让Spring Boot控制何时关闭数据库,因此在数据库不需要时可以确保关闭只发生一次。

results matching ""

    No results matching ""