使用 Spring Boot 配置 H2 的 Web 控制台

Posted

技术标签:

【中文标题】使用 Spring Boot 配置 H2 的 Web 控制台【英文标题】:Configuring H2's web console with Spring Boot 【发布时间】:2017-05-08 12:46:39 【问题描述】:

我似乎无法弄清楚如何。我已经添加了

spring.datasource.url=jdbc:h2:mem:myschema;
spring.h2.console.enabled=true
spring.h2.console.path=/console

到我的 application.properties,但 localhost:8080/console 上仍然没有任何内容。 H2的驱动程序是我的类路径,所以我猜the docs中列出的三个唯一条件我可能不满足的是

您正在开发一个网络应用程序

具体是什么意思?我在 pom.xml 中有 spring-boot-starter-web 作为依赖项,我的 start/main 用

注释
@EnableAutoConfiguration
@ComponentScan("com.xxxx")

我错过了什么?

请注意,我不想使用 MVC。

【问题讨论】:

这很奇怪。即使我的 pom 中有相同的东西(springboot、parent、spring-boot-starter-web、h2 依赖项)。并且 /console 工作得非常好。这是我的 h2 依赖项 com.h2databaseh2runtime 【参考方案1】:

只有在包含 spring-web 时才会触发 H2 webconsole 自动配置。

但启动 h2 webconsole 所需要做的就是运行这段代码

org.h2.tools.Server s = org.h2.tools.Server.createWebServer("-web","-webAllowOthers","-webDaemon","-webPort", "8080").start();
...
s.stop(); // if you want to stop

你也可以在某处定义这个 bean

 @Bean(initMethod="start",destroyMethod="stop")
 public org.h2.tools.Server h2WebConsonleServer () throws SQLException 
   return org.h2.tools.Server.createWebServer("-web","-webAllowOthers","-webDaemon","-webPort", "8080");
 

【讨论】:

以上是关于使用 Spring Boot 配置 H2 的 Web 控制台的主要内容,如果未能解决你的问题,请参考以下文章

使用 MyBatis + H2 配置 Spring Boot 身份验证/登录

使用 H2 数据库和 Liquibase 配置 Spring Boot

Spring boot h2自动配置不起作用

Spring-Boot / H2 将数据库快照写入文件系统

spring-boot 文件系统中的持久 h2 数据库

如何使用 Spring-Boot 播种 Spring-Security