У меня есть база данных MySQL со многими базами данных, каждая из которых названа для конкретного клиента.
Веб-приложение развертывается для каждого клиента. Имя веб-приложения определяет имя базы данных. Когда веб-приложение запускается, у меня есть измененный Spring PropertyPlaceholderConfigurer, чтобы захватить ServletContext, если это возможно, и определить имя. Затем я разыменую это в моей настройке источника данных. Работает красиво. Точно такой же код можно развернуть для всех клиентов, и они без проблем найдут свою базу данных (также DNS-имя для поиска хоста MySQL).
Я бы хотел перейти на GlassFish или JBoss AS 6 и все еще делать то же самое с прямыми API / аннотациями JEE6.
Есть ли способ сделать это? Я не беспокоюсь о безопасности - наборы данных достаточно велики, чтобы оправдать их собственные машины и веб-приложения, и, поскольку модель базы данных привязана к коду, их необходимо синхронизировать. Поскольку не каждому клиенту нужен последний код для выполнения задачи, они пересматривают его с разной скоростью.
Мне нравится удобство JEE6, объединяющего многое из того, что раньше было у Spring, а затем и о некоторых, но я ненавижу иметь дело с серверами приложений и их идиотизмом, но объединение Spring тоже не весело.