Любой способ внедрить / выбрать источник данных во время выполнения? - PullRequest
0 голосов
/ 15 октября 2010

У меня есть база данных MySQL со многими базами данных, каждая из которых названа для конкретного клиента.

Веб-приложение развертывается для каждого клиента. Имя веб-приложения определяет имя базы данных. Когда веб-приложение запускается, у меня есть измененный Spring PropertyPlaceholderConfigurer, чтобы захватить ServletContext, если это возможно, и определить имя. Затем я разыменую это в моей настройке источника данных. Работает красиво. Точно такой же код можно развернуть для всех клиентов, и они без проблем найдут свою базу данных (также DNS-имя для поиска хоста MySQL).

Я бы хотел перейти на GlassFish или JBoss AS 6 и все еще делать то же самое с прямыми API / аннотациями JEE6.

Есть ли способ сделать это? Я не беспокоюсь о безопасности - наборы данных достаточно велики, чтобы оправдать их собственные машины и веб-приложения, и, поскольку модель базы данных привязана к коду, их необходимо синхронизировать. Поскольку не каждому клиенту нужен последний код для выполнения задачи, они пересматривают его с разной скоростью.

Мне нравится удобство JEE6, объединяющего многое из того, что раньше было у Spring, а затем и о некоторых, но я ненавижу иметь дело с серверами приложений и их идиотизмом, но объединение Spring тоже не весело.

1 Ответ

1 голос
/ 17 октября 2010

Я бы хотел перейти на GlassFish или JBoss AS 6 и по-прежнему делать то же самое с прямыми JEE6 API / аннотациями.

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

...