Н2 консоль Spring Boot не открывается - PullRequest
1 голос
/ 19 марта 2020

У меня очень простой проект POM

<?xml version="1.0" encoding="UTF-8"?>

https://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.5.RELEASE jar com.example management-Transactions 0.0.1-SNAPSHOT управление транзакциями Демонстрационный проект для Spring Boot

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jdbc</artifactId>
    </dependency>

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>compile</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

в appliation.properties Я пробовал разные варианты

      #spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

, но консоль не делает открыть на http://localhost: 8080 / h2-console

Единственный способ, которым это работает, по старому способу

Runnable runServer = new Runnable() {
        @Override
        public void run() {
            try {
                Server.startWebServer(DriverManager.getConnection("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1","sa",""));
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    };
    Thread threadServer = new Thread(runServer);
    threadServer.start();

1 Ответ

0 голосов
/ 22 марта 2020

Похоже, это не проблема, определяемая c для конфигурации H2. Когда я попытался использовать те же зависимости Maven, я увидел, что приложение запускается и останавливается.

Чтобы просмотреть консоль H2 в вашем собственном проекте Spring Boot, необходимо запустить встроенный веб-сервер Spring - это URL "h2-console" для работы.

Таким образом, вместо использования одного проекта JDB C:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>

Используйте стартовый веб-проект с простым контроллером.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Или добавьте в свой код зависимость инструментов Spring Dev. Это обеспечит непрерывную работу сервера, и URL-адрес консоли H2 будет работать.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

Вот ссылка на полный исходный код. https://github.com/shankarps/H2Project

Если вы не хотите запускать веб-стартовый проект, вы также можете использовать инструменты Spring Dev.

Вот статья с более подробной информацией - https://medium.com/@harittweets / как к подключению к h2-базы данных-во-разработки, тестирование, с использованием пружинного-Boot-44bbb287570

...