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.