我有一个JSF Web应用程序和Spring,我想弄清楚从applicationContext.xml引用JVM参数的方法。我使用环境参数(例如-Denv = development)启动JVM。我已经找到并尝试了几种不同的方法,包括:如何阅读Spring应用程序中的JVM参数applicationContext.xml
<bean id="myBean" class="com.foo.bar.myClass">
<property name="environment">
<value>${environment}</value>
</property>
</bean>
但是,当setter方法MyClass中被调用时,字符串“$ {}环境”传递的,而不是“发展”。我有一个适当的工作来使用System.getProperty(),但它会更好,更清洁,能够通过Spring设置这些值。有没有办法做到这一点?
编辑: 我应该之前提到的是,我从我的数据库使用JDBC连接加载性能。这似乎增加了复杂性,因为当我将属性占位符添加到配置时,从数据库加载的属性被属性占位符覆盖。我不确定它是否依赖订单或其他。这就像我可以做一个或另一个,但不是两个。
编辑: 我使用以下配置当前所加载的特性:
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc.mydb.myschema"/>
</bean>
<bean id="props" class="com.foo.bar.JdbcPropertiesFactoryBean">
<property name="jdbcTemplate">
<bean class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="myDataSource" />
</bean>
</property>
</bean>
<context:property-placeholder properties-ref="props" />
我使用这种方法得到了相同的结果,因为我在示例中使用了该方法。字符串“#{systemProperties.environment}”是传递给setter方法的东西。 – jinxed 2011-04-11 16:07:09
@jinxed:我认为我发现了最后一个问题,那里是拼写错误。 - 看到我的扩展答案。 – Ralph 2011-04-12 06:53:45