私は、何も指定せずにapplication.properties
mvn spring:run で起動したときに spring-boot が作成する埋め込み H2 データベースの H2 データベース コンテンツを確認しようとしているだけです。Hibernate JPA がテーブルを作成しているのは確認できますが、以下の URL で h2 コンソールにアクセスしようとすると、データベースにテーブルがありません。
http://localhost:8080/console/
次のような提案があります:Spring によって開始された埋め込み H2 データベースの内容を表示します。
しかし、Spring-Boot で提案された XML をどこに置くべきかわかりません。また、たとえ置いたとしても、h2console
外部データベースが構成されている場合は、その XML を利用できないようにしたいので、何らかの条件付きコードでこれを処理する必要がある可能性が高くなります (または、Maven プロファイルがアクティブ化されたときにのみ H2 を含める最も理想的なケースでは、Spring が自動的に処理できるようにするだけかもしれません)。
ブート時に H2 コンソールを動作させる方法 (および Spring が使用している JDBC 接続文字列を確認する方法) を示すサンプル コードを持っている人はいますか?
ベストアンサー1
これは、H2 を使用して Spring Boot で H2 コンソールを動作させる方法です。これが正しいかどうかはわかりませんが、他に誰も解決策を提示していないので、これが最善の方法であると提案します。
私の場合、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 と入力します。