Не удалось автоматически сконфигурировать DataSource: 'spring.datasource.url' не указан
Я создал базовое Spring Boot приложение с использованием SPRING INITIALIZR, выбрав зависимости для Web, MongoDB и JPA.
Когда я пытаюсь запустить приложение, получаю следующую ошибку:
Ошибка при запуске ApplicationContext. Чтобы отобразить отчет о условиях, повторно запустите приложение с включенным режимом 'debug'.
2018-03-25 16:27:02.807 ОШИБКА 16256 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
ПРИЛОЖЕНИЕ НЕ УДАЛОСЬ ЗАПУСТИТЬ
***************************
Описание:
Не удалось автонастроить DataSource: 'spring.datasource.url' не указан, и встроенный источник данных не может быть автоматически настроен.
Причина: Не удалось определить подходящий класс драйвера.
Действие:
Рассмотрите следующую ситуацию:
Если вы хотите использовать встроенную базу данных, такую как H2, HSQL или Derby, пожалуйста, добавьте ее в Classpath.
Если у вас есть настройки базы данных, которые нужно загрузить из определенного профиля, вам нужно будет активировать его, так как на данный момент профили не активны.
В файле 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,
Spring Boot: 2.0
Прошу помощи в решении этой проблемы. Почему приложение не может запуститься и как исправить ситуацию с конфигурацией DataSource?
5 ответ(ов)
Судя по вашему описанию, возник конфликт зависимостей из-за того, что вы добавили в ваш файл pom.xml
зависимости как mongodb
, так и data-jpa
, что может вызывать проблемы. Вот пример зависимостей:
<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>
Рекомендую попробовать удалить зависимость spring-boot-starter-data-jpa
из вашего проекта и запустить его снова. Это должно исправить проблему, и ваше приложение должно заработать корректно.
Чтобы исключить автоматическую конфигурацию DataSource в Spring Boot, вам нужно перейти в папку ресурсов, где находится файл application.properties
, и добавить или обновить следующую строку в этом файле:
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
После внесения изменений, сохраните файл. Это действие предотвратит автоматическую конфигурацию источника данных, что может быть полезно, если вы не используете базу данных в своем приложении или хотите самостоятельно управлять подключениями к ней. Не забудьте перезапустить приложение, чтобы изменения вступили в силу.
Чтобы отключить автоматическую конфигурацию источника данных в вашем приложении Spring Boot, добавьте следующую строку в файл application.properties, который находится в папке ресурсов, и затем перезапустите приложение:
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
Это позволит избежать инициализации источника данных, если он вам не нужен.
Похоже, что отсутствует драйвер MongoDB. Вам нужно добавить следующую зависимость в ваш файл pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
После добавления не забудьте обновить проект, чтобы изменения вступили в силу.
Ваш вопрос касается зависимости, основанной на данных, которая пытается найти соответствующие сущности, которые еще не были созданы. Если вы получили комментарии к зависимостям, основанным на данных, и приложение не работает, возможно, проблема связана с неправильной конфигурацией или отсутствующими сущностями.
Ваша зависимость для Spring Data JPA закомментирована в вашем файле pom.xml
или build.gradle
. Чтобы решить эту проблему, вам нужно раскомментировать блок зависимости. Так ваша зависимость будет выглядеть вот так:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
После раскомментирования убедитесь, что все соответствующие сущности созданы в вашем проекте. Также проверьте, чтобы ваш класс сущности был правильно аннотирован и настроен. Затем попробуйте снова запустить приложение. Это должно помочь разрешить вашу проблему с зависимостями и отсутствующими сущностями. Если ошибка сохранится, пожалуйста, предоставьте больше информации о вашей конфигурации и ошибках, которые возникают при запуске.
Создание репозитория Spring без сущности
Закодированный пароль не выглядит как BCrypt
Как зарегистрировать SQL-запросы в Spring Boot?
Почему поле с @Autowired в Spring оказывается null?
Передача нескольких параметров в REST API - Spring