29.1.1. 对内嵌数据库的支持
开发应用时使用内存数据库是很方便的。显然,内存数据库不提供持久化存储;你只需要在应用启动时填充数据库,在应用结束前预先清除数据。
提示 How-to章节包含有一章讲解如何初始化数据库。
Spring Boot可以自动配置的内嵌数据库包括H2, HSQL和Derby。你不需要提供任何连接URL,只需要添加你想使用的内嵌数据库依赖。
注 如果你正在你的测试中使用这个特性,你可能注意到了:不管你使用了多少应用上下文,你的整个测试套件重复使用了同一个数据库。如果你想要确保每个上下文各自有一个内嵌数据库,你应当把 spring.datasource.generate-unique-name
设置为true
。
例如,典型的POM依赖如下所示:
注 对于自动配置的内嵌数据库,你需要添加spring-jdbc
依赖,在本示例中,spring-boot-starter-data-jpa
已包含该依赖了。
注 无论出于什么原因,你需要配置内嵌数据库的连接URL,一定要确保数据库的自动关闭是禁用的。如果使用H2,你需要设置DB_CLOSE_ON_EXIT=FALSE
。如果使用HSQLDB,你需要确保没使用shutdown=true
。禁用数据库的自动关闭可以让Spring Boot控制何时关闭数据库,因此在数据库不需要时可以确保关闭只发生一次。
最后更新于