spring webflux h2控制台 return 404

H2ConsoleAutoConfiguration不会对Spring WebFlux和Netty(响应式)执行,因为H2控制台将只对基于servlet的应用程序可用。所以,你必须在这个spring boot应用程序中手动配置H2服务器,使用spring webflux和netty。

这是一份配置h2控制台的代码示例


import org.h2.tools.Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.event.ContextClosedEvent;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

import static org.h2.tools.Server.createWebServer;

@Component
public class H2ServerManual {

    Logger log = LoggerFactory.getLogger(H2ServerManual.class);
    private Server webServer;

    @Value("${h2-server.port}")
    Integer h2ConsolePort;

    @EventListener(ContextRefreshedEvent.class)
    public void start() throws java.sql.SQLException {
        log.info("starting h2 console at port " + h2ConsolePort);
        this.webServer = createWebServer("-webPort", h2ConsolePort.toString(),
                "-tcpAllowOthers").start();
        System.out.println(webServer.getURL());
    }

    @EventListener(ContextClosedEvent.class)
    public void stop() {
        log.info("stopping h2 console at port " + h2ConsolePort);
        this.webServer.stop();
    }
}

如果发现某些类找不见需要去掉h2依赖中的依赖生效范围

在这里插入图片描述

你需要在spring的配置文件中配置h2的端口,不能和应用程序端口一样


h2-server:
  port: 8081

需要配置开启控制台


spring:
  h2:
    console:
      enabled: true
      settings:
        web-allow-others: true
      path: /h2
  datasource:
    url: jdbc:h2:./rental_db;AUTO_SERVER=TRUE
    username: sa
    password: 
    driverClassName: org.h2.Driver

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值