Рубрики
Без рубрики

Рекомендуемая структура пакета проекта Spring Boot

Краткий и практический обзор рекомендуемой структуры пакетов для проектов Spring Boot.

Автор оригинала: baeldung.

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, и узнали о том, как мы можем спроектировать структуру пакета.