Spring и структура проекта MVC
Я разрабатываю автономное приложение Swing с использованием Maven. Я пытаюсь следовать шаблону MVC. Я смущен своей структурой проекта. У меня есть что-то вроде этого:
/src/main/java/myName/appName
/src/main/java/myName/appName/model
/src/main/java/myName/appName/view
/src/main/java/myName/appName/controller
Теперь я хочу включить структуру Spring, что делает меня местом где-то интерфейсами и реализациями DAO и BO. Я прочитал эту статью , и предлагаемая структура проекта мне не подходит. Что мне кажется, это добавить:
/src/main/java/myName/appName/dao
/src/main/java/myName/appName/bo
Содержимое каталога dao будет выглядеть так (с классами Client и Customer в каталоге моделей):
/src/main/java/myName/appName/dao/ClientDAO.java
/src/main/java/myName/appName/dao/ClientDAOImpl.java
/src/main/java/myName/appName/dao/CustomerDAO.java
/src/main/java/myName/appName/dao/CustomerDAOImpl.java
Это плохо? Я хочу изучить хорошие практики.
Ответы
Ответ 1
Вы можете следить за любой из двух структур проекта, которые вы определили в своей проблеме, но это должно зависеть от размера вашего приложения.
Если в вашем приложении имеется большое количество модулей, вы можете следить за структурой проекта, как описано в @basijames. Потому что это будет полезно при управлении кодом и распространении работы в вашей команде.
Если у вас мало модулей, чем я предпочитаю, вы должны перейти к структуре проекта, как показано ниже.
/src/main/java/myName/appName/controller
/src/main/java/myName/appName/model
/src/main/java/myName/appName/service
/src/main/java/myName/appName/dao
/src/main/java/myName/appName/bo
Но, по моему мнению, при создании проекта maven вы должны пропустить выбранные типы.
Надеюсь, это поможет вам. Приветствия.
Ответ 2
Категоризация
/src/main/java/myName/appName/model
/src/main/java/myName/appName/view
/src/main/java/myName/appName/controller
вызовет проблемы для вас позже.
Структура пакета, упомянутая в приведенной вами ссылке, должна подойдет вам. У вас должен быть один пакет для каждого модуля/объекта.
Например /src/main/java/myName/appName/customer
и вы должны поместить в этот пакет все классы model
, view
, controller
и dao
, связанные с customer
.