Препоръчителна структура на пакета на проект за пролетно зареждане

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. Дизайн

Дизайнът на структурата на пакета е независим от Spring Boot. Следователно той трябва да бъде наложен от изискванията на нашия проект.

Една от популярните стратегии е пакет по функция , който подобрява модулността и позволява частна видимост на пакета в подпакетите.

Да вземем например проекта PetClinic. Този проект е създаден от разработчиците на Spring, за да илюстрира тяхната гледна точка за това как трябва да бъде структуриран един общ проект на Spring Boot.

Той е организиран по начин по пакет. Следователно имаме основния пакет, 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 - и научихме как можем да проектираме структурата на пакета.