Mark890, используйте https://start.spring.io/
Там укажите нужные вам технологии, версию джава и предпочитаемый сборщик.
На выходе будет сто-процентно рабочий шаблон проекта.
кмк надо сначала почитать Чистый код и Эффективная java - они отвечают на тактические вопросы.
Совершенный код - это для ребят с опытом комерческой разработки.