基本的なSpringBootアプリ、組み込みTomcat、Thymeleafテンプレートエンジンがあります。コンソールにアクセスするために、このBeanを作成しました。
@Bean
public ServletRegistrationBean h2ConsoleServletRegistration() {
ServletRegistrationBean bean = new ServletRegistrationBean(new WebServlet());
bean.addUrlMappings("/console/*");
return bean;
}
しかし、コンソールにアクセスすると http:// localhost:8080/appContext/console/login.do?jsessionid = f3585792a9bf1f0cf1a0b6a09dcefe1a
Beanに次のように注釈を付けています。
@Entity
@Table(name="t_user")
public class User implements Serializable, UserDetails {
..
}
私のアプリケーションのプロパティ:
spring.datasource.url=jdbc:h2:mem:testdb;MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
hibernate.dialect=org.hibernate.dialect.H2Dialect
しかし、JPAによって作成されたテーブルは表示されません。
プロパティファイルにあるものをすべて削除します。あなたが言及したものはすべてデフォルトです。 Springbootは、pomでh2依存関係を特定するとすぐに、任意の方法で構成します。また、そのServletRegistration
Beanは必要ありません。それも削除します。これをプロパティファイルに入れるだけですspring.h2.console.enabled=true
デフォルトでは、コンソールには http:// localhost:8080/h2-console でアクセスできます。
デフォルトのパスはh2-consoleです。を使用して構成できますspring.h2.console.path
プロパティ
Pom.xmlにdevtoolsの依存関係がある場合は、デフォルトのパスをhttp://localhost:8080/h2-console
としてH2コンソールにアクセスできます。それ以外の場合は、以下のようにapplication.propertiesでH2のパスを指定する必要があります。
devtoolsを使用http://localhost:8080/h2-console/
でアクセスできます
POM:spring-boot-starter、h2、spring-boot-starter-web、spring-boot-devtools
devtoolsなし-プロパティで設定する必要があります:
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
POM:spring-boot-starter、h2、spring-boot-starter-web
これはSpringBoot2.1.1の場合でした。他の人に役立つかもしれません
Application.propertiesファイルで必要なのは以下の構成のみです。
_spring.h2.console.enabled=true
_
デフォルトでは、h2は_http://localhost:8080/h2-console/
_で利用可能になります
ただし、application.propertiesで_spring.h2.console.path=/h2
_を定義でき、その後、_http://localhost:8080/h2
_を使用してh2にアクセスできます。
アプリケーションにSecurityConfigを実装している場合は、追加する必要があります。
_.and().csrf().ignoringAntMatchers("/h2/**") // Make H2-Console non-secured; for debug purposes
.and().headers().frameOptions().sameOrigin() // Allow pages to be loaded in frames from the same Origin; needed for H2-Console
_
http.authorizeRequests()
で
ご覧ください: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html
このプロパティを設定してみてください:
spring.jpa.hibernate.ddl-auto=create
まず、H2コンソールにアクセスするためにBeanを明示的に定義する必要はありません。それはすでにSpringbootによって処理されています。以下のように、application.propertiesでH2コンソールパスを定義できます。
spring.h2.path = /h2-console
次の方法でコンソールにアクセスできます
http://Host:port/h2-console
次に、createは既存のスキーマを削除するため、常にddl-autoプロパティを「create」ではなく「update」として使用します。
spring.jpa.hibernate.ddl-auto=update
Spring bootとH2のスタータープロジェクトを探している場合(ボーナスとしてHiberante Enverを使用し、不要な場合はenverパッケージと@Auditedをエンティティから削除します)-以下を試すことができます: