如何在 Spring Boot 库中启用 H2 控制台?
Posted
技术标签:
【中文标题】如何在 Spring Boot 库中启用 H2 控制台?【英文标题】:How do I enable H2 Console in a Spring Boot Library? 【发布时间】:2022-01-18 21:51:12 【问题描述】:我有一个非 Web Spring Boot 库,它具有持久性实体,Web 应用程序客户端将使用这些实体与数据库进行通信。当我创建我的测试时,我在我的 spring 集成测试中使用@SpringBootTest
,从而使用我的库模拟一个 spring boot 应用程序。
将spring.h2.console.enabled
设置为true
时,我认为我可以通过集成测试进行调试并启用H2 控制台,这样我就可以通过转到http://localhost:8080/h2-console
来查看数据,但是控制台无法在我的浏览器中加载。
我怀疑这与以下事实有关,因为我的库不是 web-mvc 库,它不会自动配置 H2 WebServlet,但我想知道提供该属性是否足以spring boot 自动配置servlet。
有谁知道提供 H2 属性是否足够?或者我需要做些什么来启用 H2 WebServlet?
【问题讨论】:
也许这有帮助:***.com/questions/50374545/… 【参考方案1】:通过在@SpringBootTest
注释中添加webEnvironment
条目,我设法使其工作(在某种程度上)。这允许注册 H2 WebServlet。我说“有点”的原因是因为每当我调试测试时,线程似乎暂停,并且在我的浏览器(http://localhost:8080/h2-console)中请求它时,我从 H2 获得了非常延迟的响应时间。我的 H2 数据库非常小(500 KB),所以我认为这与嵌入的服务器有关并以某种方式与测试相关联?
【讨论】:
以上是关于如何在 Spring Boot 库中启用 H2 控制台?的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 DataJpaTest 的 Spring Boot 2.0 测试中访问 H2 控制台
如何从另一个 Spring Boot 应用程序访问一个 Spring Boot 应用程序的内存 H2 数据库