2016-11-06 158 views
0

我目前通过属性文件在hibernate(版本4.0.1)文件中使用数据库参数。如何在hibernate配置文件中使用环境变量?

我想从环境变量中使用一些数据库参数。在上下文中加载之前,如何从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> 

我有一些想法让一个配置类的对象,但我不知道在哪里写代码以及它将如何实现。

回答

0

您需要使用春天表达式语言配置从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> 
+0

感谢您的解决方案。 如果我的JDBC URL由2个环境变量和一些字符串组成,我应该怎么做。 在这种情况下应该是什么语法。我可以如何合并? 它会工作,如果我写这样的事情? 以我的本地系统URL是 的ConnectionURL = JDBC:EDB://127.0.0.1:5432 /测试 <属性名= “JDBCURL”> \t \t \t “#{JDBC:EDB:// systemProperties [” OPENSHIFT_POSTGRESQL_DB_HOST ']:systemProperties [' OPENSHIFT_POSTGRESQL_DB_PORT'] //测试}”

+0

#{(systemProperties [ 'dbconnecturl1'(dbconnecturl2 ']}}]})的concat systemProperties [)'。 – developer

0

可以作为<property name="username" value="#{systemProperties['dbUsername']}"/>例如使用。

变量系统属性是预定义的,您可以看到Xml Based Configuration了解更多详细信息。

相关问题