【发布时间】:2014-04-22 19:02:18
【问题描述】:
我开发了一个将在 AWS BeanStalk 上运行的 REST WS。
目前,数据源配置了属性文件:
database.driverClass=org.postgresql.Driver
database.jdbcUrl=jdbc:postgresql://localhost:5432/public
database.username=postgres
database.password=postgres
在 context.xml 中:
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
<property name="driverClass" value="${database.driverClass}" />
<property name="jdbcUrl" value="${database.jdbcUrl}"/>
....
但是现在,我需要一个使用 AWS Beanstalk 的 preprod 环境来公开我的系统属性,例如 RDS_HOSTNAME、RDS_PORT、RDS_DB_NAME、...
有没有办法保持相同的系统,比如写作
database.jdbcUrl=jdbc:postgresql://#{RDS_HOSTNAME}:#{RDS_PORT}/#{RDS_DB_NAME}
在 preprod.property 中?
或者用 context.xml 中的系统属性重置 database.jdbcUrl?
【问题讨论】:
-
在命令行上设置属性有用吗?
-
您使用什么构建工具?编写脚本以根据输出目标生成自定义属性文件非常简单。
-
@mttdbrd :我更喜欢有一个单一的战争来加载他的上下文依赖于 spring.profiles.active。
-
@chrylis :我看到你的评论和 mttdbrd 的评论,我忘了说这是一个 webapp :p
-
是的,我是说你为 Maven 设定了一个目标,比如“preprod”,它会自动创建正确的属性文件并将其填充到单个战争中。如果使用得当,单个构建工具可以生成具有正确 .properties 的正确 war 文件,用于 test、local、preprod、prod 等。
标签: java spring amazon-web-services amazon-elastic-beanstalk