Конфигурация Spring cloud не применяется к глобальной конфигурации

#spring-boot #spring-cloud

Вопрос:

У меня возникла проблема с конфигурацией spring cloud 2020.0.3, spring boot 2.4.5 для получения дополнительной информации:

my_cofig.yaml

 spring:
  datasource:
    url: "jdbc:mariadb://localhost:3306/default_db"
    driver-class-name: org.mariadb.jdbc.Driver
    username: my_db
    password: 12345
---
spring:
  profiles: dev
  datasource:
    url: "jdbc:mariadb://localhost:3306/dev_db"
 
  • Я загрузил конфигурацию с сервера конфигурации через браузер, это правильно.
    Но:
  • Когда я запускаю приложение Spring с определенной конфигурацией (например, dev), приложение Spring не должно применять глобальные переменные конфигурации, определенные в файле конфигурации с сервера конфигурации. Он загружает только переменные конфигурации разработчика.

бутстрап.yaml

 server:
  port: 8081
spring:
  application:
    name: auth-service
  cloud:
    config:
      enabled: true
      fail-fast: true
      allow-override: true
      profile: dev
      uri: http://localhost:5000
 

Подробная информация об ошибке:

 Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
 

Пожалуйста, помогите мне, большое спасибо!

Комментарии:

1. здесь не видно, но вы добавили пробелы profiles ? yaml довольно драматично относится к пробелам и вкладкам

2. Спасибо за ваш комментарий, yaml в правильном формате!

3. Что говорит /привод/env? Какая версия spring boot?

4. Я использую версию загрузки spring: 2.4.5. Журнал консоли: Вызвано: org.hibernate. Исключение HibernateException: Доступ к DialectResolutionInfo не может быть равен нулю, если «hibernate.dialect» не установлен

Ответ №1:

 spring:
  profiles:
 

Этого не существует (если я не ошибаюсь, оно было устаревшим). Пожалуйста, ознакомьтесь со справочной документацией.

Я считаю, что то, что вы ищете, — это следующее (справочная документация).:

 spring:
  datasource:
    url: "jdbc:mariadb://localhost:3306/default_db"
    driver-class-name: org.mariadb.jdbc.Driver
    username: my_db
    password: 12345
---
spring:
  config:
    activate:
      on-profile: dev
  datasource:
    url: "jdbc:mariadb://localhost:3306/dev_db"
 

Комментарии:

1. Спасибо за ваш комментарий, я следую многопрофильным документам YAML , чтобы составить файл конфигурации yaml. Я попробовал ваше решение, но оно все еще не работает.

Ответ №2:

Наконец, я решил проблему, обновив версию spring boot до 2.5.1, Спасибо всем

Комментарии:

1. Если это так, не забудьте принять свой ответ как правильный, чтобы вопрос был представлен как «ответ» 😉