it-roy-ru.com

Spring Boot Доступ к консоли H2

У меня есть базовое приложение SpringBoot, встроенный Tomcat, шаблонизатор Thymeleaf ... Я создал этот компонент для доступа к консоли:

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

но когда я получаю доступ к консоли http: // localhost: 8080/appContext/console/login.do? jsessionid = f3585792a9bf1f0cf1a0b6a09dcefe1a

Я поставил свои бобы следующим образом:

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

свойства моего приложения:

Свойства JPA Spring Data

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:

 enter image description here

4
Nuñito de la Calzada

Удалите все, что у вас есть в вашем файле свойств. Все те, что вы упомянули, по умолчанию. Springboot настроит его любым способом, как только он определит зависимость h2 в вашем pom. А также вам не нужен этот бин ServletRegistration. Удалите это также. Просто поместите это в свой файл свойств spring.h2.console.enabled=true

По умолчанию консоль доступна на http: // localhost: 8080/h2-console
Путь по умолчанию - h2-console. Вы можете настроить его, используя
spring.h2.console.path свойство

6
pvpkiran

Посмотрите: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html

Попробуйте установить это свойство:

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

Прежде всего, вам не нужно явно определять компонент для доступа к консоли H2. Springboot уже позаботился об этом. Вы можете определить путь к консоли H2 в вашем application.properties, как показано ниже:

spring.h2.path = /h2-console

Вы можете получить доступ к консоли через 

http://Host:port/h2-console

Во-вторых, всегда используйте свойство ddl-auto как «update», а не «create», потому что create удалит существующую схему.

spring.jpa.hibernate.ddl-auto=update

Если вы ищете стартовый проект Spring boot и H2 (с Hiberante Enver в качестве бонуса, удалите пакет enver и @Audited из сущности, если вы этого не хотите) - вы можете попробовать следующий:

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

0
zeagord