Переопределение свойств с помощью System in Spring

1

Я разрабатываю WS для отдыха, который будет работать на AWS BeanStalk.

На данный момент источник данных настроен с файлами свойств:

database.driverClass=org.postgresql.Driver
database.jdbcUrl=jdbc:postgresql://localhost:5432/public
database.username=postgres
database.password=postgres

И в контексте.xml:

<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
    <property name="driverClass" value="${database.driverClass}" />
    <property name="jdbcUrl" value="${database.jdbcUrl}"/>
....

Но теперь мне нужно иметь preprod environmentnement, используя AWS Beanstalk, которые отображают мои системные свойства, такие как RDS_HOSTNAME, RDS_PORT, RDS_DB_NAME,...

Есть ли способ сохранить ту же систему, как писать

database.jdbcUrl=jdbc:postgresql://#{RDS_HOSTNAME}:#{RDS_PORT}/#{RDS_DB_NAME}

В preprod.property?

Или сбросить database.jdbcUrl с системным свойством в context.xml?

Теги:
spring
amazon-web-services
beanstalk

1 ответ

4

Вы могли бы сделать

   <context:property-placeholder ignore-unresolvable="true" ignore-resource-not-found="true" location="classpath:database.properties, file:preProd.properties" />

И preProd.properties будет на машине preprod. Клавиши будут одинаковыми, но значения будут разными. Таким образом, если preProd.properties не найден (например, на dev-машине), будут использоваться базы данных.properties. Если присутствует файл preProd.properties, он переопределяет значения из database.properties.

Если вы используете maven, вы также можете использовать maven-профиль и maven-replacer-plugin.

  • 0
    Maven, кажется, путь сюда. Не уверен, что его использует OP, но это та проблема, для решения которой был разработан Maven. Я уверен, что вы могли бы сделать то же самое с Gradle, но я не знаю как.
  • 0
    Это не применимо, потому что целью является развертывание на beanstalk, который создает RDS и дает нам системное свойство. Оператор хочет только развернуть файл войны без какой-либо системы сборки.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню