java - 如何在spring xml配置中注入(inject)环境变量?

标签 java spring amazon-web-services environment-variables

AWS 在 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.managing.html 中谈到 System.getProperty("JDBC_CONNECTION_STRING")在我们设置了环境变量之后。一切都很好,除了我不能在我的 Spring XML 配置代码中调用 System.getProperty 也不能调用资源包快捷方式,因为资源包本身必须以某种方式提取这些环境变量来为它们服务。你能帮我把这个示例配置转换为使用环境变量吗? :-)

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://secrethost:007/whois?autoReconnect=true" />
    <property name="username" value="bond" />
    <property name="password" value="abuginsidemistycorner" />
    <property name="initialSize" value="100" />

    <property name="minEvictableIdleTimeMillis">
        <value>300000</value>
    </property>

    <property name="timeBetweenEvictionRunsMillis">
        <value>60000</value>
    </property>

    <property name="maxIdle" value="20" />
</bean>

我无法理解人们在这里做什么:

Can I use an Environment variable based location for Spring FileSystemResource?哪个适用于最近的 Spring 版本?

最佳答案

首先添加一个<context:property-placeholder .. />元素添加到您的配置中。

<context:property-placeholder />

然后只需在配置中使用占位符。

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="${JDBC_CONNECTION_STRING}" />
    <property name="username" value="bond" />
    <property name="password" value="abuginsidemistycorner" />
    <property name="initialSize" value="100" />
    <property name="minEvictableIdleTimeMillis" value="30000" />
    <property name="timeBetweenEvictionRunsMillis" value="60000" />
    <property name="maxIdle" value="20" />
</bean>

确保占位符名称与您设置的变量匹配。

关于java - 如何在spring xml配置中注入(inject)环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18744663/

相关文章:

django - 如何在AWS ECS docker容器中获取AWS凭证?

python - 即使配置了过滤器,AWS Lambda 函数也会停止所有实例

java - 具有私有(private)构造函数的类中静态变量的初始化

java - 使用layout_width ="wrap_content"获取TextView的可用宽度

java - 经常查询对象列表的最佳数据结构

java - 如何在测试中模拟 CloseableIterator?

java - 将JSP页面添加到Spring服务中

java - 从 getInputStream 正确关闭 Java Process InputStream

java - java spring 微服务中的 postgres 不显示数据

object - 如何判断对象是否是 AWS S3 上的文件夹