1. Обзор
При создании нового проекта Spring Boot существует высокая степень гибкости в том, как мы можем организовать наши занятия.
Тем не менее, есть некоторые рекомендации, которые мы должны иметь в виду.
2. Нет Пакета По умолчанию
Учитывая тот факт, что аннотации Spring Boot, такие как @ComponentScan , @EntityScan, @ConfigurationPropertiesScan и @SpringBootApplication , используют пакеты для определения мест сканирования, рекомендуется избегать использования пакета по умолчанию — то есть мы всегда должны объявлять пакет в наших классах .
3. Основной класс
Аннотация @SpringBootApplication запускает сканирование компонентов для текущего пакета и его подпакетов. Таким образом, надежный способ состоит в том, чтобы основной класс проекта находился в базовом пакете .
Это настраивается, и мы все еще можем найти его в другом месте, указав базовый пакет вручную. Однако в большинстве случаев этот вариант, безусловно, проще.
Более того, проект на основе JPA должен иметь несколько дополнительных аннотаций к основному классу:
@SpringBootApplication(scanBasePackages = "example.baeldung.com") @EnableJpaRepositories("example.baeldung.com") @EntityScan("example.baeldung.com")
Кроме того, имейте в виду, что может потребоваться дополнительная настройка.
4. Дизайн
Конструкция структуры пакета не зависит от пружинной загрузки. Поэтому она должна быть навязана требованиями нашего проекта.
Одной из популярных стратегий является package-by-feature , которая повышает модульность и обеспечивает частную видимость пакетов внутри вложенных пакетов.
Возьмем, к примеру, проект PetClinic . Этот проект был создан разработчиками Spring, чтобы проиллюстрировать их взгляд на то, как должен быть структурирован общий проект загрузки Spring.
Он организован в виде пакета по функциям. Следовательно, у нас есть основной пакет org.springframework.samples.petclinic и 5 вложенных пакетов:
- org.springframework.samples.petclinic. модель
- org.springframework.samples.petclinic. владелец
- org.springframework.samples.petclinic. система
- org.springframework.samples.petclinic. ветеринар
- org.springframework.samples.petclinic. посетить
Каждый из них представляет домен или функцию приложения, группируя внутри себя сильно связанные классы и обеспечивая высокую когезию .
5. Заключение
В этой небольшой статье мы рассмотрели некоторые рекомендации, которые необходимо учитывать при создании проекта Spring Boot, и узнали о том, как мы можем спроектировать структуру пакета.