动态读取Hibernate配置

时间:2017-03-31 04:56:39

标签: java hibernate aws-kms

我需要从另一个服务AMS获取hibernate连接URL,用户名和密码配置(就像亚马逊KMS一样)。

我已经编写了另一种从AMS获取这些值的方法。但是如何设置/使用这些值hibernate来连接我的数据库。

例如。的hibernate.cfg.xml

<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">password</property>

Util.java

getAMSValue(propertyName){
...
}

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

为什么不在java文件中指定完整配置而不是XML?

请参阅此documentation

  

org.hibernate.cfg.Configuration也允许您指定   配置属性。

     

......

     

这不是将配置属性传递给的唯一方法   休眠。一些替代选项包括:

     
      
  1. 将java.util.Properties的实例传递给Configuration.setProperties()。
  2.   
  3. 将名为hibernate.properties的文件放在类路径的根目录中。
  4.   
  5. 使用java -Dproperty = value设置系统属性。
  6.   
  7. 在hibernate.cfg.xml中包含元素(稍后会讨论)。
  8.   

在您的情况下,您可以在java文件中进行类似的配置

Configuration configuration = new Configuration().configure();

...
...
configuration.setProperty("hibernate.connection.url", getAMSValue("url"));
configuration.setProperty("hibernate.connection.username", getAMSValue("username"));
configuration.setProperty("hibernate.connection.password", getAMSValue("password"));