在本地环境中,我们可以在属性文件中配置一些连接环境属性,然后按上下文使用它们: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类中使用系统属性..
任何建议?非常感谢!
答案 0 :(得分:1)
最好的选择是通过Spring将它们注入你的班级。 E.g:
<bean class="my.java.Object">
<property name="smtp" value="${smtp.host}">
</bean>
但是,通过System.getProperty(&#34; smtp.host&#34;)将其作为系统属性也可以正常工作。
答案 1 :(得分:0)
从java类中,只需使用System.getProperty(“smtp.host”);