В микросервисной системе у меня есть интерфейс с аннотацией @AuthorizedFeignClient(name="send-email", url="http://localhost:8080/utils/api/email")
, в среде разработки он работает правильно, однако в среде Docker мне нужен параметр url , чтобы иметь контейнер Docker имя вместо localhost для работы в среде Docker.
Я попытался добавить в application-prod.yml конфигурацию:
containers-host:
gateway: jhipster-gateway
И в аннотации я написал это так:
@AuthorizedFeignClient(name="send-email", url="http://${containers-host.gateway}:8080/utils/api/email")
Однако при попытке сгенерировать .war происходит сбой:
org.springframework.beans.factory.BeanDefinitionStoreException: недопустимое определение компонента с именем 'com.sistema.service.util.EmailClient', определенным в null: не удалось разрешить заполнитель 'container-host.gateway' в значении 'http://${containers -host.gateway}: 8080 / Utils / API / электронная почта "; вложенное исключение - java.lang.IllegalArgumentException: не удалось разрешить заполнитель 'Containers-host.gateway' в значении "http://${containers -host.gateway}: 8080 / utils / api / email"
2018-11-08 11: 25: 22.101 ОШИБКА 64 --- [main] o.s.boot.SpringApplication: сбой запуска приложения
org.springframework.beans.factory.BeanDefinitionStoreException: недопустимое определение bean-компонента с именем 'com.sistema.service.util.EmailClient', определенным в null: не удалось разрешить заполнитель 'Containers-host.gateway' в значении 'http://${containers -host.gateway}: 8080 / Utils / API / электронная почта "; вложенное исключение - java.lang.IllegalArgumentException: не удалось разрешить заполнитель 'Containers-host.gateway' в значении "http://${containers -host.gateway}: 8080 / utils / api / email"
Как настроить имя хоста службы в соответствии с конфигурацией среды, в которой она работает?
Мой код, который не работает, выглядит так:
@AuthorizedFeignClient(name="send-email", url="http://${containers-host.gateway}:8080/utils/api/email")
public interface EmailClient {
@PostMapping("/send-email")
void sendEmail(String mail);
}