Не удалось автоматически настроить источник данных: spring.datasource.url не указан

Я создал базовое приложение для весенней загрузки из ПРУЖИНА ИНИЦИАЛИЗР с зависимостями Web, MongoDB и JPA.

Когда я пытаюсь запустить приложение весенней загрузки, я получаю следующее исключение:

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-03-25 16:27:02.807 ERROR 16256 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded datasource could be auto-configured.
Reason: Failed to determine a suitable driver class

Action:

Consider the following situation:
If you want an embedded database like H2, HSQL or Derby, please add it in the Classpath.
If you have database settings to be loaded from a particular profile you may need to activate it since no profiles were currently active.

В файле application.properties у меня следующая конфигурация:

server.port=8081
spring.data.mongodb.database=TestDatabase
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017

Версии, которые я использую: Spring: 5.0.4, MongoDB: 3.6, Весенняя загрузка: 2.0

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
46
0
125 860
12
Перейти к ответу Данный вопрос помечен как решенный

Ответы 12

Кажется, отсутствует драйвер MongoDB. Включите следующую зависимость для pom.xml:

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

Спасибо за ответ. У меня уже есть эта зависимость в моем файле pom.xml. Все еще не получается.

Subash J 25.03.2018 13:37

у меня тоже не получилось с spring-boot-starter-data-mongodb и spring-batch-starter

tero17 02.04.2018 17:11
Ответ принят как подходящий

Поскольку вы добавили зависимости mongodb и data-jpa в свой файл pom.xml, он создавал конфликт зависимостей, как показано ниже

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

Попробуйте удалить зависимость jpa и запустить. Он должен работать нормально.

Да, это была моя проблема. Я удалил зависимость JPA, и теперь она отлично работает. Спасибо.

Subash J 25.03.2018 13:39

Обратите внимание, что spring-boot-starter-batch вводит зависимость от jdbc, которая активирует ту же ошибку.

Roberto Lo Giacco 30.05.2018 14:03

Да, это решило мою проблему. В моем случае это были org.postgresql:postgresql и data-jpa. Просто исключите data-jpa, и все будет хорошо.

WesternGun 27.06.2018 14:25

Вызвало бы ли это ошибку, если бы в моем pom.xml были data-jpa и mysql-connector-java?

whatthefish 09.07.2018 05:42

Я скрыл зависимость mongo db, но все еще имел ту же проблему.

Lucky 03.08.2018 12:06

Я думаю, вам не следует удалять зависимость mongo, вместо этого удаляйте зависимость data-jpa.

Bhabadyuti 06.08.2018 10:24

Спасибо за ответ, это очень помогает. Я тоже решил проблему с помощью вашего ответа.

Jatinder 31.03.2020 14:14

Для mongodb: используйте зависимость от mongo

Alan 24.11.2020 23:06

У меня возникла эта проблема, когда я переключал свой проект Spring с Postgres на MongoDB. Если вы используете IntelliJ, не забудьте выполнить MAVEN SYNC после редактирования pom.xml!

Taimoor 03.01.2021 20:29

Перейдите в папку ресурсов, где присутствует application.properties, обновите в ней приведенный ниже код.

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

У меня есть эта проблема, даже если я не использовал зависимости jpa и mongodb вместе в моем pom.xml ... Итак, я получаю это из-за зависимости spring-boot-starter-batch. Не могли бы вы объяснить, почему эта настройка работает?

fuat 20.11.2018 15:52

Это сработало, но при отправке запроса со стороны клиента возникла ошибка: blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Adir D 29.12.2020 21:31

@AdirD Это не имеет ничего общего с рассматриваемой проблемой, вам необходимо настроить сервер для приема запросов CORS.

Taimoor 03.01.2021 20:28

Добавьте строку ниже в файл application.properties в папке ресурсов и перезапустите приложение.

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

ваша зависимость на основе данных пытается найти свои соответствующие сущности, которые не были созданы, комментирует зависимости на основе данных и снова запускает приложение.

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

Добавьте свои зависимости, такие как mongodb, web, jpa. Удалите / очистите остатки.

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

добавление зависимости org.apache.derby решило мою проблему.

<dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <scope>runtime</scope>
        </dependency>

В gradle build я просто:

compile('org.springframework.boot:spring-boot-starter-data-jpa') compile('org.springframework.boot:spring-boot-starter-security') compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.boot:spring-boot-devtools')

удаленный

**`compile('org.springframework.boot:spring-boot-starter-data-jpa')`**

и это сработало для меня.

Эта ошибка возникла, когда вы помещаете зависимости JPA в файл конфигурации весенней загрузки, например, в maven или gradle. Решение: Документация Spring-Boot

В файле application.properties необходимо указать строку подключения к БД и сведения о драйвере. Это решит проблему. Это может кому-то помочь.

Я столкнулся с этой проблемой, когда просто неправильно ввел свой URL-адрес jdbc в application.properties. Надеюсь, это кому-то поможет: перед:

spring.datasource.url=jdbc://localhost:3306/test

после:

spring.datasource.url=jdbc:mysql://localhost:3306/test

@Bhabadyuti Bal, дайте нам хороший ответ, в gradle вы можете использовать:

compile 'org.springframework.boot:spring-boot-starter-data-jpa' 
compile 'com.h2database:h2'

во время теста:

testCompile 'org.reactivecommons.utils:object-mapper:0.1.0'
testCompile 'com.h2database:h2'

Я столкнулся с этой ошибкой просто потому, что неправильно написал значение spring.datasource.url в файле application.properties и использовал postgresql:

Проблема была:jdbc:postgres://localhost:<port-number>/<database-name>

Исправлено:jdbc:postgresql://localhost:<port-number>/<database-name>

ПРИМЕЧАНИЕ: разница в postgres и postgresql, это две разные вещи.

Дополнительные причины и решения могут быть найдены здесь

Другие вопросы по теме