2010-11-28 3 views
12

Я пытаюсь настроить и многомодульный проект Maven с Spring/JPA. Вот общий макет. У меня есть корневой модуль с 5 дочерними модулями.DDD, JPA и Multi-Module Maven

 
backoffice (root maven module) 
| 
-(maven module)-----core (this is where persistence.xml and entityManager stuff resides). 
| 
-(maven module)-----employee (employee related entities, controllers, etc.) 
| 
-(maven module)-----vendor (vendor related entities, controllers, etc.) 
| 
-(maven module)-----customer (customer related entities, controllers, etc.) 
| 
-(maven module)-----web (contains all the web stuff). 

У меня есть все JPA вещи в ядро ​​/ SRC/главная/ресурсы/META-INF (persistence.xml, весна-контекст ж/EntityManagerFactory, DataSource и т.п.). Идея состоит в том, что я хочу разделить материал персистентности по всем подмодулям (сотрудникам, поставщикам и заказчикам).

Проблема в том, что при запуске веб-приложения он не может найти EntityMangerFactory. Если я настрою материал JPA в каждом дополнительном модуле (сотрудник, поставщик и клиент), тогда он работает.

Как настроить все мои вещи, связанные с сохранением в ядре, а затем поделиться им с другими модулями?

Заранее спасибо.

+1

Добавили ли вы зависимость от ядра для модулей сотрудников, поставщиков и клиентов? Честно говоря, я не уверен, что сделаю их отдельными модулями. – willcodejavaforfood 2010-11-28 18:14:25

+0

Хорошо, я забыл добавить файл контекста из ядра в свой web.xml. Теперь, когда я сделал это, запускается webapp, но он не может найти объекты в других модулях. – user523078 2010-11-28 19:02:04

ответ

3

Ну, вот это решение, которое я закончил с использованием в случае, если кто-то заинтересованы.

http://labs.bsb.com/2010/11/configuring-modular-jpa-applications-with-spring/

Некоторые из респондентов спрашивали, почему я хочу, чтобы настроить проекту таким образом, в первую очередь. Ну, причина в модульности. Я хочу все в маленьких тестируемых и развертываемых устройствах. В конечном итоге мы будем вставлять OSGI в микс, чтобы клиент мог выбирать, какие модули они хотят установить. Каждый модуль должен иметь возможность запускаться самостоятельно.

-3

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

Если вы хотите, чтобы один webapp и один entitymanager, то почему вы хотите иметь отдельные модули для каждой части сущностей? Просто придерживайтесь сотрудников, поставщиков и клиентов в основном, с менеджером сущности, и делайте это.

Или дать каждую свою собственную EntityManager, (и, вероятно, каждый свой собственный веб-приложение)

Смежные вопросы