Я работаю над веб-приложением (Spring, Hibernate, Apache Tomcat) с большим количеством интерфейсов (HTML, мобильный HTML, XML, REST). Поэтому я решил разделить приложение на несколько веб-приложений, чтобы избежать смешивания файлов из интерфейсов. Я извлек основные классы приложения (бизнес-логика, Hibernate DAO) во внешний jar-файл и включил его в веб-приложения. Казалось, все идеально.
Но теперь я понял, что на сервере больше экземпляров ядра, больше EntityManagerFactories, контексты Spring, ...). Когда я попытаюсь обмениваться данными через Spring bean-компоненты (например, добавить задачу планировщика в одном интерфейсе, удалить ее в другом) или использовать кэш второго уровня Hibernate, он должен выйти из строя.
Какое лучшее решение?