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.