Nrich adalah perpustakaan Java yang dikembangkan di CROZ yang tujuannya adalah untuk membuat pengembangan aplikasi di JVM sedikit lebih mudah. Itu dibuat dengan menggabungkan modul-modul yang berguna pada beberapa proyek ke dalam perpustakaan umum. Pustaka ini didasarkan pada Spring Framework, dan dengan demikian menyediakan permulaan Spring Boot untuk sebagian besar modul guna mempermudah konfigurasi.
Sebagian besar grup fungsionalitas terdiri dari beberapa modul:
api
dan berisi kelas yang mewakili API modul (antarmuka layanan, parameter, tipe pengembalian...)spring-boot-starter
dan berisi konfigurasi otomatis Spring Boot dari modul yang ditentukanDi lingkungan Spring Boot, hanya modul starter spring boot yang harus ditambahkan sebagai dependensi.
Tabel berikut berisi versi kaya dengan versi minimum Java dan Spring yang sesuai.
Versi kaya | versi Jawa | Versi Boot Musim Semi |
---|---|---|
1.0.x - 1.1.x | 1.8 | 2.3.3.RELEASE |
1.2.x | 1.8 | 2.6.4 |
1.3.x | 1.8 | 2.6.6 |
1.4.x | 1.8 | 2.6.6 |
1.5.x - 1.7.x | 1.8 | 2.7.4 |
1.8.x | 1.8 | 2.7.7 |
2.0.0 | 17 | 3.1.3 |
Nrich terdiri dari modul-modul berikut:
Menyediakan dependensi terkelola untuk semua modul nrich serta untuk pustaka yang digunakan di dalam modul yang tidak tercakup dalam dependensi Spring Boot.
Modul ini berisi kelas-kelas umum yang digunakan di seluruh perpustakaan.
Modul ini mencapai enkripsi dan dekripsi yang lebih mudah dengan kemampuan mengenkripsi hasil metode dan mendekripsi argumen metode. Metode yang hasilnya harus dienkripsi dan/atau argumen didekripsi dapat ditandai menggunakan anotasi atau sebagai properti yang ditentukan dalam file properti (seperti application.yml
).
Memberikan pembuatan laporan excel yang lebih mudah dari data dan templat yang disediakan. Implementasi default menggunakan perpustakaan Apache POI
tetapi mencoba menyederhanakan penggunaan.
Menyediakan pemetaan batasan kelas sisi server ke batasan formulir sisi klien. Tujuan dari nrich-form-configuration
adalah untuk menyediakan tempat sentral untuk definisi batasan. Klien mendaftarkan formulir ke kelas yang mendefinisikan batasan, yang memungkinkan dia meminta informasi untuk formulir yang didaftarkan. Informasi yang diberikan berisi batasan dengan pesan kesalahannya, yang ditentukan di kelas. Klien kemudian bertanggung jawab untuk memproses dan menerapkannya ke formulir.
Menetapkan default yang umum digunakan untuk properti Jackson standar (sebagai contoh FAIL_ON_EMPTY_BEANS: false
) untuk menghindari pengulangan dalam proyek. Modul ini juga menyediakan modul Jackson yang membuat serialisasi string kosong menjadi null dan membuat serial nama kelas menjadi nama kelas yang sepenuhnya memenuhi syarat untuk kelas yang dianotasi dengan anotasi @Entity
atau berasal dari paket yang ditentukan dalam daftar tertentu.
Menyediakan layanan logging untuk logging kesalahan yang konsisten dalam format standar. Layanan logging yang disediakan juga dapat menyelesaikan tingkat verbositas dan logging untuk setiap pengecualian. Modul ini digunakan dalam modul nrich-webmvc untuk pencatatan pengecualian tetapi dapat dengan mudah diganti dengan beberapa implementasi khusus lainnya.
Ditujukan untuk penambahan notifikasi tertentu ke dalam respon sisi server, yang nantinya dapat ditampilkan di sisi klien. nrich-notification
mendukung tiga tingkat keparahan notifikasi yang berbeda dan juga dapat menyertakan daftar kesalahan validasi. Definisi dan resolusi pesan diwujudkan dengan fitur MessageSource
Spring.
Menyederhanakan administrasi entitas JPA tertentu dan menyediakan representasi terformat dari entitas tersebut sehingga sisi klien dapat menafsirkan dan membuat formulir dan kisi dinamis. Formulir dan kisi yang dihasilkan dapat digunakan untuk pengeditan entitas tanpa implementasi tambahan di sisi server. Modul ini juga menyediakan metode untuk mencari, membuat, memperbarui, dan menghapus entitas melalui REST API.
Menyederhanakan kueri entitas. nrich-search
didasarkan pada perpustakaan Spring Data JPA dan dibuat sebagai sarana untuk menyederhanakan pembuatan kueri untuk berbagai formulir pencarian di sisi klien. Kueri dapat dibentuk secara otomatis dari berbagai jenis input, seperti kelas kueri atau string dengan daftar kolom pencarian. Selain itu, kelas konfigurasi khusus digunakan untuk menentukan bagaimana nilai kueri yang disediakan digunakan dalam pembuatan kueri.
Ditujukan sebagai pengganti fungsionalitas csrf Keamanan Musim Semi. nrich-security-csrf
berfungsi dengan pustaka Spring Web MVC dan WebFlux. Klien harus menentukan url token awal dan setelah itu mengirimkan token yang dihasilkan dengan setiap permintaan di header atau sebagai parameter.
Menambahkan fungsionalitas tambahan ke Spring Boot yang digunakan dalam nrich.
Berisi kelas utilitas untuk akses Spring, seperti ApplicationContextHolder
untuk menyelesaikan ApplicationContext
dari konteks statis.
Berisi batasan dan validator jakarta-validation-api
tambahan yang terbukti umum digunakan, seperti validator NotNullWhen
.
Menyediakan fungsionalitas tambahan yang dibangun di atas kerangka Spring Web MVC. Tujuan utamanya adalah menangani pengecualian melalui NotificationErrorHandlingRestControllerAdvice
yang menangani pengecualian dengan mencatatnya, lalu membuat dan mengirimkan pemberitahuan ke sisi klien dengan deskripsi pengecualian. Modul ini menggunakan modul nrich-notification untuk penanganan notifikasi dan nrich-logging untuk logging. nrich-webmvc
juga menambahkan kelas tambahan yang menangani pengikatan (yaitu mengubah string kosong menjadi nol) dan penyelesaian lokal.