29.1.1. 对内嵌数据库的支持

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

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

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

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-jpa</artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.hsqldb</groupId>
  7. <artifactId>hsqldb</artifactId>
  8. <scope>runtime</scope>
  9. </dependency>

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

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