H2 db在使用webflux时无法通过localhost:8080/h2-console访问。我在某个地方读到只有在开发基于Servlet的应用程序时才能使用此功能。但是我正在使用Webflux和Netty。所以在这样的应用程序中是否有办法查看h2控制台?
我遇到了相同的问题,最终我手动在另一个端口上启动了控制台服务器:
@Component
@Profile("test") // <-- up to you
public class H2 {
private org.h2.tools.Server webServer;
private org.h2.tools.Server tcpServer;
@EventListener(org.springframework.context.event.ContextRefreshedEvent.class)
public void start() throws java.sql.SQLException {
this.webServer = org.h2.tools.Server.createWebServer("-webPort", "8082", "-tcpAllowOthers").start();
this.tcpServer = org.h2.tools.Server.createTcpServer("-tcpPort", "9092", "-tcpAllowOthers").start();
}
@EventListener(org.springframework.context.event.ContextClosedEvent.class)
public void stop() {
this.tcpServer.stop();
this.webServer.stop();
}
}
然后导航到 http://localhost:8082(不带 /h2-console)。