当我未在application.properties中指定任何内容并以mvn spring:run开头时,我只是想查看spring- boot创建的嵌入式H2数据库的H2数据库内容。我可以看到hibernate的JPA正在创建表,但是如果我尝试在数据库下面的URL下访问h2控制台,则该表没有表。
http://localhost:8080/console/
但是我不知道在Spring Boot时将建议的XML放在哪里,即使我这样做了,我也不希望在配置外部数据库时h2console可用,因此我更有可能需要处理此问题。使用某种条件代码(或者在最理想的情况下(仅当激活Maven配置文件时我仅包含H2)允许弹簧自动处理它)。
是否有人有示例代码显示如何使H2控制台在启动时工作(以及找出spring使用的jdbc连接字符串的方法)?
这就是我让H2控制台在H2的spring启动中工作的方式 。我不确定这是否正确,但是由于没有其他人提供解决方案,因此我建议这是最好的方法。
就我而言,我为数据库选择了一个特定的名称,以便在启动H2控制台时可以输入一些内容(在本例中为“ AZ”)。我认为所有这些都是必需的,尽管忽略spring.jpa.database-platform似乎没有任何伤害。
在application.properties中:
spring.datasource.url=jdbc:h2:mem:AZ;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
在Application.java(或某些配置)中:
@Bean public ServletRegistrationBean h2servletRegistration() { ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet()); registration.addUrlMappings("/console/*"); return registration; }
然后,您可以通过{server} / console /访问H2控制台。输入此作为JDBC URL:jdbc:h2:mem:AZ