Архитектура типового Enterprise приложения
История: от магического сервлета до наших дней Магический сервлет (все в одном) Не-UI логика Доступ к данным Бизнес-логика Доменная модель UI-логика (интерфейса пользователя) КонтроллерПредставление Интерфейсная Модель DAO (DAL, Repository) UserDao ContractDao Services AdminServic e ContractMan agementServ ice Domain Model User Contract Controllers ListUsersCon troller CreateEditUs erController Views userlist.jsp createeditus er.jsp Forms (Commands) SearchUserF orm UserForm
Архитектура слоев приложения UI Layer Слой интерфейса пользователя отвечает за взаимодействие с пользователем Views Controllers Service Layer Слой сервисов приложения отвечает за выполнение бизнес-логики приложения Services Data Access Layer Отвечает за работу приложения с БД Data Access Objects (DAOs) Domain Model Объектная модель данных приложения Domain entities X X Forms
Зоны ответственности слоев Примитивные операции с базой данных (CRUD) Data Access Реализация бизнес-логики Один публичный сервис-метод – одна бизнес-транзакция (use case) Services Модель предметной области приложения (сущности и связи) Может содержать доменную (общую для всех use case) бизнес-логику Может содержать аннотации для отображения на реляционную модель Domain Model Интерфейская логика user-case. Вызывает методы сервисов для подготовки экрана или выполнения действия пользователя Controllers Шаблоны экранных форм Views Модели экранных форм Forms
Архитектура модулей app-services.jar (dao, model, services) app-web.war (controller, form, jsp)
Пример структуры