我需要从另一个服务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){
...
}
我怎样才能做到这一点?
答案 0 :(得分:1)
为什么不在java文件中指定完整配置而不是XML?
请参阅此documentation
org.hibernate.cfg.Configuration也允许您指定 配置属性。
......
这不是将配置属性传递给的唯一方法 休眠。一些替代选项包括:
- 将java.util.Properties的实例传递给Configuration.setProperties()。
- 将名为hibernate.properties的文件放在类路径的根目录中。
- 使用java -Dproperty = value设置系统属性。
- 在hibernate.cfg.xml中包含元素(稍后会讨论)。
醇>
在您的情况下,您可以在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"));