SpringBoot Zugriff auf die H2-console
Habe ich eine grundlegende SpringBoot app., embedded Tomcat, Thymeleaf template-engine.
Ich habe diese Bohne auf der Konsole:
@Bean
public ServletRegistrationBean h2ConsoleServletRegistration() {
ServletRegistrationBean bean = new ServletRegistrationBean(new WebServlet());
bean.addUrlMappings("/console/*");
return bean;
}
aber wenn ich Zugriff auf die Konsole http://localhost:8080/appContext/console/login.do?jsessionid=f3585792a9bf1f0cf1a0b6a09dcefe1a
Habe ich meine Bohnen kommentierte wie folgt:
@Entity
@Table(name="t_user")
public class User implements Serializable, UserDetails {
..
}
meine Anwendung Eigenschaften:
Spring Data JPA Eigenschaften
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
Aber ich sehe keine Tabelle erstellt von JPA:
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen, müssen Sie in der properties-Datei. Alle diejenigen, die Sie erwähnt werden, sind Standard. Springboot wird, konfigurieren Sie es so bald wie Sie identifiziert h2 Abhängigkeit in Ihrer pom. Und auch die Sie nicht brauchen, dass
ServletRegistration
bean. Entfernen Sie diese als gut. Nur setzen Sie diese in Ihren Eigenschaften Dateispring.h2.console.enabled=true
Durch Standard-Konsole zugegriffen werden kann, auf http://localhost:8080/h2-console
Standard-Pfad h2-Konsole. Sie können konfigurieren, dass es mit
spring.h2.console.path
EigenschaftKönnen wir auf die H2-console mit default-Pfad als
http://localhost:8080/h2-console
wenn wir devtools Abhängigkeit in pom.xml sonst müssen wir den Pfad angeben, für H2 in einer Anwendung.Eigenschaften, wie untenMit devtools zugegriffen werden kann, auf
http://localhost:8080/h2-console/
POM: spring-boot-starter -, h2 -, spring-boot-starter-web -, spring-boot-devtools
Ohne devtools - wir müssen Sie in Eigenschaften:
POM: spring-boot-starter -, h2 -, spring-boot-starter-web
Dies war der Fall für Spring Boot 2.1.1 vielleicht hilfreich, um andere
Zunächst, Sie müssen nicht explizit definiert eine bean zugreifen H2-Konsole. Es wird betreut durch die Springboot schon. Sie können definieren, der H2-Console-Pfad in Ihrer Anwendung.Eigenschaften wie folgt:
Können Sie den Zugriff auf die Konsole über
Zweitens, verwenden Sie Immer die ddl-auto-Eigenschaft als "update" anstatt "erstellen", weil das erstellen, löschen bestehenden schema.
Wenn Sie sich für ein starter-Projekt von Spring boot-und H2 (mit Hiberante Enver als bonus, entfernen Sie die enver-Paket und @Geprüften, aus der Einheit, wenn Sie nicht wollen, dass) - Sie können versuchen, die unten ein:
https://github.com/sundarsy/springboot-h2-enver
Brauchen wir nur unter Konfiguration in der Anwendung.Eigenschaften-Datei.
spring.h2.console.enabled=true
Standardmäßig h2 werden am
http://localhost:8080/h2-console/
Aber kann man definieren
spring.h2.console.path=/h2
in der Anwendung.Eigenschaften und nach, dass h2 zugegriffen werden kann, mithttp://localhost:8080/h2
Nun, wenn Sie umgesetzt SecurityConfig in Anwendung, dann müssen Sie
in
http.authorizeRequests()
Haben Sie einen Blick auf: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html
Versuchen Sie, diese Einstellung Eigenschaft:
spring.jpa.hibernate.ddl-auto
zu lassen, Spring Boot zu erstellen, die das schema für uns, basierend auf entity/Modell an den Start. Es hat nichts zu tun mit H2