Динамическое чтение конфигураций Hibernate

Мне нужно получить URL-адрес подключения к спящему режиму, имя пользователя и пароль из другой службы AMS (так же, как amazon KMS).

Я написал еще один метод для получения этих значений из AMS. НО как установить/использовать эти значения в спящем режиме для подключения моей базы данных.

например. 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){
...
}

как я могу этого добиться?


person Extreme    schedule 31.03.2017    source источник


Ответы (1)


Почему бы вам не указать полную конфигурацию в java-файле вместо XML?

См. эту документацию

org.hibernate.cfg.Configuration также позволяет указать свойства конфигурации.

... ...

Это не единственный способ передать свойства конфигурации в Hibernate. Некоторые альтернативные варианты включают:

  1. Передайте экземпляр java.util.Properties в Configuration.setProperties().
  2. Поместите файл с именем hibernate.properties в корневой каталог пути к классам.
  3. Установите свойства системы, используя java -Dproperty=value.
  4. Включите элементы в 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"));
person Raman Sahasi    schedule 31.03.2017