Я занимаюсь созданием библиотеки, которая обеспечивает унаследованную конфигурацию для приложений, которые используют нашу установку Spring Cloud Config/Eureka
. Идея состоит в том, чтобы доставить эту конфигурацию в качестве пользовательского стартера с небольшим или отсутствующим шаблоном, связанным с весной, в отдельных приложениях для микросервисов.Как управлять свойствами бутстрапа весеннего облака в общей библиотеке?
На данный момент большая часть общей конфигурации, которую я хочу разместить в этой библиотеке, состоит из материала в bootstrap.yml
. Я хотел бы предоставить bootstrap.yml
в своем обычном стартере, но приложения, использующие библиотеку, по-прежнему должны иметь возможность предоставлять свои собственные bootstrap.yml
, даже если они могут правильно установить их spring.application.name.
Из-за того, что bootstrap.yml
загружен из пути к классам, Spring, похоже, игнорирует тот, что находится в общей библиотеке, если приложение имеет свой собственный bootstrap.yml
. Я даже не могу использовать ApplicationContextInitializer
для настройки среды из-за специального способа, с помощью которого загрузочный контекст обрабатывает ApplicationContextInitializers
.
Есть ли у кого-нибудь рекомендации по подходу, который будет работать здесь? Я хочу предоставить вставку lib, которая заставляет нашу конфигурацию загрузочного бутстрапа работать без дублирования шаблона bootstrap.yml
во всех наших проектах.
Я не думаю, что вы могли бы сделать это с самого bootstrap.yml, но вы можете подключить в загрузочный механизм и заполнить источник свойств по умолчанию. – spencergibb
Почему ямльский файл? Вы можете создавать Java-конфигурации. Это было бы проще распространить. –
Конечно, java будет проще распространять. Тем не менее, мне нужно будет сделать большое количество настроек, чтобы выполнить то, что можно сделать очень легко с помощью yaml. Просто предоставление некоторого javaconfig для отключения весенней облачной шины под определенным профилем, например, довольно сложно с точки зрения конфигурации по соглашению, но это можно сделать в yaml с простой spring.cloud.bus.enabled = false. Просто для того, чтобы предоставить стандартную дефолту eureka по умолчанию, я смотрю на настройку компонентов, которые в противном случае получат выгоду от autoconfig. – shazbot