0

在本地环境中,我们可以在一个属性文件中配置一些连接环境属性,然后通过 context:property-placeholder 来使用它们。例如:

<context:property-placeholder location="classpath:resources-local.properties"/>
<smtp:endpoint host="${smtp.host}" port="${smtp.port}" user="${smtp.user}"            password="${smtp.password}" name="NotificationEmail" doc:name="SMTP" to="${smtp.to}"        from="${smtp.from}" subject="error" />

但是当我将应用程序部署到cloudhub时,我可以将连接信息设置为环境变量。我们不需要导入resources-local.properties文件。我们仍然可以使用属性作为

<smtp:endpoint host="${smtp.host}" port="${smtp.port}" user="${smtp.user}"            password="${smtp.password}" name="NotificationEmail" doc:name="SMTP" to="${smtp.to}"        from="${smtp.from}" subject="error" />

这里的问题是,如何在 java 类中使用 cloudhub 上设置的环境变量。如何在 java 类中获取 smtp.host 值???

David 告诉我,我可以将它们用作系统属性。但是如何在java类中使用系统属性..

有什么建议吗??非常感谢!

4

2 回答 2

1

最好的选择是通过 Spring 将它们注入到你的类中。例如:

<bean class="my.java.Object">
  <property name="smtp" value="${smtp.host}">
</bean>

但是,通过 System.getProperty("smtp.host") 将其作为系统属性也可以。

于 2014-09-18T23:28:35.210 回答
0

从 java 类中,只需使用 System.getProperty("smtp.host");

于 2014-09-18T13:35:02.923 回答