web-dev-qa-db-de.com

Spring Boot Zugriff auf H2-Konsole

Ich habe eine grundlegende SpringBoot-App, eine eingebettete Tomcat- und Thymeleaf-Template-Engine. Ich habe diese Bean erstellt, um auf die Konsole zuzugreifen:

@Bean
    public ServletRegistrationBean h2ConsoleServletRegistration() {
        ServletRegistrationBean bean = new ServletRegistrationBean(new WebServlet());
        bean.addUrlMappings("/console/*");
        return bean;
    }

aber wenn ich auf die Konsole zugreifen http: // localhost: 8080/appContext/console/login.do? jsessionid = f3585792a9bf1f0cf1a0b6a09dcefe1a

Ich habe meine Bohnen wie folgt kommentiert:

@Entity
@Table(name="t_user")
public class User implements Serializable, UserDetails {
..
}

meine anwendungseigenschaften:

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 von JPA erstellte Tabelle:

 enter image description here

Entfernen Sie alles, was Sie in Ihrer Eigenschaftendatei haben. Alle von Ihnen genannten sind Standard. Springboot wird es auf irgendeine Weise konfigurieren, sobald es die H2-Abhängigkeit in Ihrem POM identifiziert. Und außerdem brauchen Sie diese ServletRegistration Bohne nicht. Entfernen Sie das auch. Fügen Sie dies einfach in Ihre Eigenschaftendatei ein. spring.h2.console.enabled=true

Auf die Konsole kann standardmäßig über http: // localhost: 8080/h2-console zugegriffen werden.
Standardpfad ist h2-console. Sie können es mit konfigurieren
spring.h2.console.path Eigenschaft

6
pvpkiran

Schauen Sie sich Folgendes an: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html

Versuchen Sie, diese Eigenschaft festzulegen:

spring.jpa.hibernate.ddl-auto=create
0
MrKiller21

Zunächst müssen Sie keine Bean explizit definieren, um auf H2 Console zuzugreifen. Der Springboot kümmert sich schon darum. Sie können den H2-Konsolenpfad in Ihrer application.properties wie folgt definieren:

spring.h2.path = /h2-console

Sie können über auf die Konsole zugreifen

http://Host:port/h2-console

Zweitens: Verwenden Sie die Eigenschaft ddl-auto immer als "update" und nicht als "create", da create das vorhandene Schema löscht.

spring.jpa.hibernate.ddl-auto=update

Wenn Sie nach einem Startprojekt für Spring Boot und H2 suchen (mit Hiberante Enver als Bonus entfernen Sie das Enver-Paket und @Audited aus der Entität, wenn Sie das nicht möchten) - Sie können Folgendes versuchen:

https://github.com/sundarsy/springboot-h2-enver

0
zeagord