我目前正在通过属性文件在hibernate(Version 4.0.1)文件中使用数据库参数。
我想从环境变量中使用一些数据库参数。如何从java文件中获取值并在上下文中加载之前设置为xml文件。
<bean id="propertyConfigurer"
class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg ref="configurationEncryptor" />
<property name="locations">
<list>
<value>classpath:/test/demo/prop/DataParam.properties</value>
</list>
</property>
</bean>
<bean id="data" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass">
<value>${driverClass}</value>
</property>
<property name="jdbcUrl">
<value>${dbconnecturl}</value>
</property>
.
.
.
</beans>
我有一个想法,可以创建一个Configuration类的对象,但我不知道在哪里编写该代码以及如何实现它。
答案 0 :(得分:1)
您需要使用 spring expression language 来配置OS environemnt变量的属性,如下所示:
<bean id="propertyConfigurer"
class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
<constructor-arg ref="configurationEncryptor" />
<property name="locations">
<list>
<value>classpath:/test/demo/prop/DataParam.properties</value>
</list>
</property>
</bean>
<bean id="data" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass">
<value>#{ systemProperties['driverClass']}</value>
</property>
<property name="jdbcUrl">
<value>#{ systemProperties['dbconnecturl']}</value>
</property>
.
.
.
</beans>
答案 1 :(得分:1)
例如,您可以使用<property name="username" value="#{systemProperties['dbUsername']}"/>
。
变量 systemProperties 是预定义的,您可以查看Xml Based Configuration了解更多详情。