Во-первых, некоторый контекст:
В настоящее время я работаю над проектом, в котором я использую структуру Spring в Google AppEngine (GAE) для получения некоторых данных из одной из служб Google. Для этого я использую средства Google OAuth. Для этого мне нужно использовать clientSecret
и clientId
, которые относятся к моему приложению. Поскольку это статические значения конфигурации, я использую Spring <util:properties>
(ссылка на документацию), чтобы вставить эти значения в соответствующие классы.
Конфигурация XML:
<util:properties id="googleProperties" location="WEB-INF/google.properties" />
Использование класса:
@Value("#{googleProperties['google.data.api.client.id']}")
private String clientId;
Мой вопрос:
Как оказалось, значения clientId
и clientSecret
должны быть разными для производства (при развертывании в App Engine) для разработки (на моей локальной машине). Чтобы решить эту проблему без постоянного изменения значений в файле свойств при развертывании, я искал конфигурацию Spring profiles
, которая позволила бы мне указать различные файлы свойств для производства и разработки. Хотя у меня есть идея, как профили Spring работают на основе в документации, я не совсем уверен, какое подходящее решение будет в этом конкретном ситуация.
Другими словами, как я могу вставлять разные файлы свойств на основе того, развертывается ли мое приложение локально или на GAE?