Spring MVC - konwencja nazw dla klas

0

Planuje napisać aplikacje webową przy wykorzystaniu Spring MVC, JPA + jakiś front. Mianowicie mam taki problem, że nie wiem jaką konwencję nazw dla klas,pakietów powinienem przyjąć, co zawrzeć w klasach. Patrzyłem na githubie i są pewne różnice. Dlatego wolę się dopytać.
Przykładowo chce rejestrować userów.
To tworzę sobie klasę User która będzie encją, czy może lepiej nazwać klase UserModel lub UserData?
Interfejs UserDao będzie zapewniał dostęp do danych z bazy.
Potrzebuję również kontrolera do obsługi żądań, jedyna sensowna nazwa dla mnie to UserController. W kontrolerze mam referencje do interfejsu UserService</code>. Kontroler ma metody CRUD, ale na przykład chciałbym walidować poprawność danych przy tworzeniu usera, to na UserService tworze sobie metody validatePassword <code>validateEmail</code> itp., a na kontrolerze mam tylko <code>createUser w którym wywołuje sobie wcześniej wspomniane metody. Czy tak jest prawidłowo?

Jak powinienem poukładać to w pakiety?
User-> Model
Dao
Service
Controller
I dla Book oddzielna paczka z takimi samymi podpakietami ? Czy może po jednym pakiecie Model,Dao,Service,Controller i tam pakowac UserDao,BookDao itp?

1

Ja dziele tak :
-data
--Entity
--Repository
-domain
--DTO
--Service
-web
--controller

Korzystam ze Spring Data JPA (polecam!) i nazwy klas są takie:
User - nazwa encji
UserRepository - interface Spring Data
UserRepositoryImpl - dla implementacji (jeśli bym chciał ją stworzyć)
UserService - interface
UserServiceImpl
i UserController
W serwisach ustawiasz transakcyjność

Czy może po jednym pakiecie Model,Dao,Service,Controller i tam pakowac UserDao,BookDao itp?
Po jednym

ale na przykład chciałbym walidować poprawność danych przy tworzeniu usera, to na UserService tworze sobie metod
Użyj adnotacji JRS-303, zaimplementowane są z użyciem Hibernate:
http://hibernate.org/validator/documentation/getting-started/
Możesz dorobić adnotacje @Pattern i dzięki niej ustawiasz regex na password, tutaj masz opisaną walidację w Springu:
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html
A do frontu polecam Bootstrap (framework CSS)

1 użytkowników online, w tym zalogowanych: 0, gości: 1