Spring boot не может получить файл конфигурации из моей файловой системы - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь создать пример приложения на Spring boot и spring cloud.Я написал свою базу данных и конфигурацию гибернации в файле свойств config.properties , который находится на моем рабочем столе, и я хочу, чтобы моя весенняя загрузка использовала эту конфигурацию.

В моем проекте 3 модуля

  • API
  • DataLayer
  • ServiceLayer

Это код, который я упоминал в файле application.property API

spring.profiles.active = native spring.cloud.config.server.native.searchLocation = C: /Users/DEV/Desktop/configuration/config.properties

и файл свойств DataLayer и ServiceLayer пуст

Но когда я запускаю API, я получаю следующую ошибку

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


Action:

Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).


Process finished with exit code 1

Может ли кто-нибудь помочь мне с этой ошибкой.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

Это нельзя сделать из вашего модуля API.Вы добавили свойства сервера конфигурации в ваше «клиентское» (с точки зрения конфигурации) приложение.

Если вы хотите использовать Spring Cloud Config для настройки вашего проекта, у вас должно быть отдельное приложение, которое будет управлять вашей конфигурацией.Давайте назовем это config-server.(Необходимо правильно настроить зависимости maven или gradle, см. Документацию.) Чтобы настроить использование профиля native в config-server в application.properties, необходимо добавить свойства, которые вы упомянули в вопросе (например, для профиля native).

spring.profiles.active=native
spring.cloud.config.server.native.searchLocation=file:<path-to-the-directory-with-conf-files> or classpath:/<path-to-the-directory-with-conf-files>

Примечание: config-server может обрабатывать конфигурацию для многих служб.Более подробную информацию можно найти в документации Раздел Spring Cloud Config Server .

Затем в вашем API (или любом другом модуле), являющемся приложением для весенней загрузки, вы должны добавить spring-cloud-config-client зависимость и добавитьbootstrap.properties (или .yml) файл конфигурации.Там вы должны добавить свойства, которые будут описывать связь с config-server.По умолчанию config-server прослушивает порт 8888.

spring.application.name=<your app name>    
spring.cloud.config.uri=http://localhost:8888 # this is also default value for this property

При запуске он переходит по http к config-server и выбирает свойства конфигурации на основе имени службы (spring.application.name).Больше можно найти в разделе клиента Spring Cloud Config

Важно: убедитесь, что вы правильно организовали файлы в вашем каталоге конфигурации (который используется профилем native для config-server), найдитенекоторые образцы.Наименование файлов свойств важно.Для начала вы можете попробовать использовать your-application-name.properties

0 голосов
/ 17 сентября 2018

Вы должны иметь файл: с префиксом к местоположению файла свойств.

Документация от https://cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html

Существует также «собственный» профиль на сервере Config, который не использует Git, но загружает файлы конфигурации из локального пути к классам или файловой системы (любой статический URL-адрес, на который вы хотите указать с помощью spring.cloud.config.server. native.searchLocations). Чтобы использовать собственный профиль, запустите сервер конфигурации с spring.profiles.active = native.

  • [Примечание] Не забудьте использовать префикс file: для файловых ресурсов (по умолчанию без префикса обычно используется classpath). Как и в любом Spring Boot конфигурации, вы можете встраивать заполнители среды в стиле $ {}, но помните, что абсолютные пути в Windows требуют дополнительного / (для Например, файл: /// $ {user.home} / config-repo).
  • [Предупреждение] Значение по умолчанию для searchLocations идентично локальному приложению Spring Boot (то есть [classpath: /, classpath: / config, файл: ./, файл: ./ config]). Это не подвергает application.properties с сервера всем клиентам, потому что любой источники свойств, присутствующие на сервере, удаляются перед отправкой клиенту.
  • [Подсказка] Бэкэнд файловой системы отлично подходит для быстрого начала работы и для тестирования. Чтобы использовать его в производстве, вы должны быть уверены, что Файловая система является надежной и общей для всех экземпляров Config Сервер.
...