代码之家  ›  专栏  ›  技术社区  ›  michele

Java Spring引导和内存db H2。db不在h2 web控制台中

  •  0
  • michele  · 技术社区  · 5 年前

    这是我的嵌入式数据库:

       public void init() {
          EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
          db = builder
                .setType(EmbeddedDatabaseType.H2)
                .addScript("h2/create.sql")
                .addScript("h2/insert.sql")
                .build();
        }
    

    当我启动JUnit测试时,在web控制台中看不到在应用程序上下文初始化期间创建的db。

    @Before
    public void initTest() throws SQLException {
        Server webServer = Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082");
        webServer.start();
    }
    

    发生了什么?

    0 回复  |  直到 5 年前
        1
  •  1
  •   Mikhail Kholodkov    5 年前

    请参考: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-sql.html#boot-features-sql-h2-console

    您可能需要使用以下属性:

    spring.h2.console.enabled=true
    spring.h2.console.path=/path/to/console
    

    或以编程方式启动服务器:

    @Bean
    public ServletRegistrationBean h2servletRegistration() {
        ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet());
        registration.addUrlMappings("/console/*");
        registration.addInitParameter("webAllowOthers", "true");
        return registration;
    }