Выбор динамической базы данных hibernate для Java

У меня есть стандартное веб-приложение с весной 3 и спящий режим. У меня есть файлы applicationContext.xml и hibernate.cfg.xml с данными подключения к базе данных:

<hibernate-configuration>
 <session-factory>
 <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
 <property name="hibernate.cglib.use_reflection_optimizer">true</property>
 <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
 <property name="hibernate.connection.password">password</property>
 <property name="hibernate.connection.release_mode">after_transaction</property>
 <property name="hibernate.connection.url">jdbc:mysql://localhost/webapp</property>
 <property name="hibernate.connection.username">webapp</property>
 <property name="hibernate.current_session_context_class">thread</property>
 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
 <property name="hibernate.search.autoregister_listeners">false</property>
 <property name="hibernate.show_sql">false</property>
 <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
 </session-factory>
</hibernate-configuration>

...

<bean id="dataSource">
 <property name="driverClassName" value="com.mysql.jdbc.Driver">
 <property name="url" value="jdbc:mysql://localhost/webapp">
 <property name="username" value="webapp">
 </property></property></property></bean>

Теперь мне нужно изменить это приложение, используя динамическое имя базы данных, как установить его время выполнения, например, в ServletContextListener.contextInitialized?

1 ответ

Файл XML хранит конфигурацию, используемую для построения контекста. Найдите место, где создается контекст, и примените свою логику для размещения динамической базы данных. Магии нет.

licensed under cc by-sa 3.0 with attribution.