2016-11-06 156 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瞭解更多詳細信息。

相關問題