У меня есть две реализации некритического сервиса, внедренного Guice. Реализации публикуют результаты в другой системе. Когда я работаю локально, нет возможности подключиться к другой системе. У меня есть два класса, реализующие интерфейс публикации: RealPublisher и EchoPublisher. EchoPublisher регистрирует переданную информацию и возвращает успех. Когда я тестирую приложение, я использую EchoPublisher. Мне нужно это, чтобы перейти на RealPublisher при развертывании.
Я вижу, как это можно сделать с помощью метода @Provides, который определяет среду и возвращает правильную реализацию. . Или заменяю весь модуль при создании инжектора.
Моя система сборки — Gradle, которая не устанавливает никаких переменных среды, таких как Bazel, когда она используется для запуска приложения (насколько это возможно). Я знаю), поэтому мне понадобится какой-то другой способ даже обнаружить окружающую среду. Существует значение Guice.Stage, которое может упростить эту задачу с помощью метода @Provides. Конечно, мне тоже нужно знать, когда переключать этот флаг.
Есть ли хороший способ справиться с заменой реализаций, не забывая каждый раз делать это вручную? р>
Подробнее здесь: https://stackoverflow.com/questions/792 ... deployment
Замена модулей Guice между тестированием и развертыванием ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Проблемы с развертыванием проекта FastAPI в функциях Azure или локальным тестированием.
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-