Struktur Pakej yang Disarankan untuk Projek Boot Musim Semi

1. Gambaran keseluruhan

Semasa membina projek Spring Boot baru, terdapat tahap fleksibiliti yang tinggi mengenai bagaimana kita dapat mengatur kelas kita.

Namun, terdapat beberapa cadangan yang perlu kita ingat.

2. Tiada Pakej Lalai

Memandangkan kenyataan bahawa anotasi Spring Boot seperti @ComponentScan , @EntityScan, @ConfigurationPropertiesScan dan @SpringBootApplication menggunakan pakej untuk menentukan lokasi pengimbasan, disarankan agar kita tidak menggunakan pakej lalai - iaitu, kita harus selalu menyatakan pakej di kelas kita .

3. Kelas Utama

The @SpringBootApplication anotasi mencetuskan pengimbasan komponen untuk pakej semasa dan sub-pakejnya. Oleh itu, cara yang kuat untuk pergi adalah dengan menjadikan kelas utama projek berada dalam pakej asas .

Ini boleh dikonfigurasikan, dan kita masih dapat mencarinya di tempat lain dengan menentukan pakej asas secara manual. Walau bagaimanapun, dalam kebanyakan kes, pilihan ini tentu lebih mudah.

Lebih-lebih lagi, projek berasaskan JPA perlu mempunyai beberapa anotasi tambahan di kelas utama:

@SpringBootApplication(scanBasePackages = "example.baeldung.com") @EnableJpaRepositories("example.baeldung.com") @EntityScan("example.baeldung.com")

Juga, ketahui bahawa konfigurasi tambahan mungkin diperlukan.

4. Reka bentuk

Reka bentuk struktur pakej tidak bergantung pada Spring Boot. Oleh itu, ia harus dikenakan oleh kehendak projek kami.

Salah satu strategi yang popular adalah pakej demi ciri , yang meningkatkan modulariti dan membolehkan penglihatan peribadi-paket dalam sub-pakej.

Sebagai contoh, mari kita ambil projek PetClinic. Projek ini dibina oleh pembangun Spring untuk menggambarkan pandangan mereka tentang bagaimana projek Spring Boot yang biasa harus disusun.

Ia disusun mengikut pakej mengikut ciri. Oleh itu, kami mempunyai pakej utama, org.springframework.samples.petclinic , dan 5 sub-pakej:

  • org.springframework.samples.petclinic. model
  • org.springframework.samples.petclinic. pemilik
  • org.springframework.samples.petclinic. sistem
  • org.springframework.samples.petclinic. doktor haiwan
  • org.springframework.samples.petclinic. lawati

Masing-masing mewakili domain atau fitur aplikasi, mengelompokkan kelas yang sangat berpasangan di dalam dan memungkinkan kohesi tinggi .

5. Kesimpulan

Dalam artikel kecil ini, kami telah melihat beberapa cadangan yang perlu kami perhatikan ketika membina projek Spring Boot - dan belajar tentang bagaimana kami dapat merancang struktur pakej.