Я использую Spring Cloud Vault для хранения ключа API в производстве.
Из чтения блог spring.io кажется, что я могу использовать
@Value("${apiKey}")
String apiKey;
чтобы получить доступ к этому ключу в хранилище.
Это нормально в производстве, но есть ли способ установить значение по умолчанию/какой-то другой способ настройки apiKey, который можно использовать локально для разработки? (желательно за пределами хранилища, если это возможно)
Спасибо! Оглядываясь назад, это кажется очевидным, к сожалению, у меня просто был блок разума. Если вы опубликуете это как ответ, я приму это
Вы можете установить значение по умолчанию (если apiKey не найден) следующим образом:
@Value("${apiKey:MY_KEY_HERE}")
где MY_KEY_HERE — значение по умолчанию.
В дополнение к этому сохраните свой ключ локально при нажатии клавиши и передайте его как переменную среды или аргументы, такие как -Djavax.net.ssl.trustStore=C://..//key-store.jks
Как поясняется в Справочное руководство по загрузке Spring, используются несколько источников свойств конфигурации. На самом деле не имеет значения, откуда берется значение для apiKey.
У вас есть как минимум 3 варианта:
--apiKey=<your-api-key> при локальном запуске приложения.application.[properties|yaml], используемый для локальной разработки.В любом случае свойство apiKey будет разрешено локально без использования хранилища.
Просто установите его как переменную среды, или поместите его в
application.properties, используемый локально, или передайте его в качестве аргумента. По сути, для того, чтобы@Valueработал, не имеет значения, откуда он взялся.