我只是想查看当我没有在 application.properties
中指定任何内容并从 mvn spring:run 开始时 spring-boot 创建的嵌入式 H2 数据库的 H2 数据库内容。我可以看到 hibernate JPA 创建了表,但是如果我尝试通过下面的 URL 访问 h2 控制台,则数据库没有表。
http://localhost:8080/console/
我看到这样的建议: View content of embedded H2 database started by Spring
但我不知道在 spring-boot 中将建议的 XML 放在哪里,即使我这样做了,我也不希望 h2console
在配置外部数据库时不再可用,所以更有可能我需要使用某种条件代码来处理这个问题(或者在最理想的情况下,我只在激活 maven 配置文件时才包含 H2,也许只是让 spring 自动处理它)。
有没有人有一些示例代码显示如何让 H2 控制台在启动时工作(以及找出 spring 使用的 jdbc 连接字符串是什么的方法)?
最佳答案
这就是我如何让 H2 控制台在带有 H2 的 spring-boot 中工作。我不确定这是否正确,但由于没有其他人提供解决方案,所以我建议这是最好的方法。
在我的例子中,我为数据库选择了一个特定的名称,以便在启动 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
关于java - Spring Boot 默认 H2 jdbc 连接(和 H2 控制台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24655684/