Объединить 2 файла из начального и весеннего загрузочного приложения

в моем проекте у меня есть приложение starter и spring-boot с этим стартером.

Starter содержит файл application.yaml с несколькими свойствами. Например:

my:
  test:
    value: test

spring:
  profiles:
    active: development

я добавляю файл application.yaml в свое приложение с весенней загрузкой, и значения из стартового yaml не вводятся в контекст. Мой вопрос, как я могу настроить 2 файла yaml в стартере и приложении с возможностью переопределения значений с помощью стартера приложения spring-boot, например:

spring:
  profiles:
    active: testing

После слияния я хочу иметь:

spring.profiles.active=тестирование
мой.test.value=тест

В настоящее время это не удалось с ошибкой: Причина: java.lang.IllegalArgumentException: не удалось разрешить заполнитель «my.test.value» в значении «${my.test.value}»

Вы читали это? docs.spring.io/spring-boot/docs/current/reference/html/…

jbx 05.03.2019 17:21
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
549
2

Ответы 2

Используйте spring.profiles.include

spring:
  profiles:
   active: testing
   include: default

Или вы можете создать другой application-profile.yml (например, application-testing.yml) и указать профиль при запуске приложения весенней загрузки.

Команда

java -jar name.jar spring.profiles.active=testing // it will pick the properties values from application-testing.yml

В файле yml используйте include, чтобы включить любые другие профили.

приложение-testing.yml

spring:
  profiles:
    include: default

спасибо, это решило почти все мои проблемы, одна вещь, если добавить в yaml spring-boot my: test: value: значение теста spring-boot. Значением приложения является test from starter.

Ridov 05.03.2019 17:31

извините, я не получил этот комментарий, пожалуйста, примите его, если он решил вашу проблему @Ridov

Deadpool 05.03.2019 17:33

@Тотализатор, где делаются ставки на смерть знаменитостей Одна проблема с переопределением Я сделал application-starter.yaml в starter и включил его в spring-boot с помощью include.

my:
  test:
    value: spring--123


spring:
  profiles:
    active: development
    include: starter

Я ввел @Value

@Value("${my.test.value}")
private String testval;

и testval=test (из стартера) Есть ли у меня возможность сделать значения из application.yaml более первичными?

Спасибо

да, большое спасибо, это фантастическая проблема с подходом только с переопределением, как ее решить?

Ridov 05.03.2019 18:00

в чем проблема? я сказал, что показал этот подход в своем ответе, и я не знаю о проблеме, с которой вы столкнулись

Deadpool 05.03.2019 18:03

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