Nrich 是 CROZ 開發的 Java 函式庫,目的是讓 JVM 上的應用程式開發變得更加容易。它是透過將在多個專案中有用的模組組合到一個公共庫中而創建的。該程式庫基於 Spring 框架,因此為大多數模組提供了 Spring Boot 啟動器,以使配置更容易。
大多數功能組由多個模組組成:
api
後綴並包含表示模組 API 的類別(服務介面、參數、傳回類型...)spring-boot-starter
後綴,包含指定模組的 Spring Boot 自動配置在 Spring Boot 環境中,僅應將 Spring Boot Starter 模組新增為相依性。
下表包含 nrich 版本以及對應的最低 Java 和 Spring 版本。
尼克爾版本 | Java版本 | 春季啟動版本 |
---|---|---|
1.0.x - 1.1.x | 1.8 | 2.3.3.發布 |
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由以下模組組成:
為所有 nrich 模組以及 Spring Boot 相依性未涵蓋的這些模組內使用的庫提供託管相依性。
此模組包含整個庫中使用的通用類別。
該模組透過能夠加密方法結果和解密方法參數來實現更輕鬆的加密和解密。可以使用註解或屬性檔案(例如application.yml
)中指定的屬性來標記結果應加密和/或參數解密的方法。
可以根據提供的資料和範本更輕鬆地產生 Excel 報表。預設實作使用Apache POI
庫,但嘗試簡化使用。
提供伺服器端類別約束到客戶端表單約束的對應。 nrich-form-configuration
的目的是為約束定義提供一個中心位置。客戶端將表單註冊到定義約束的類,這使他能夠請求已註冊表單的資訊。提供的資訊包含約束及其錯誤訊息,這些錯誤訊息在類別中指定。然後,客戶負責處理它們並將其應用到表單中。
設定標準 Jackson 屬性的常用預設值(例如FAIL_ON_EMPTY_BEANS: false
)以避免專案中的重複。此模組還提供 Jackson 模組,用於將空字串序列化為 null,並將類別名稱序列化為使用@Entity
註解進行註解的類別的完全限定類別名稱或來自給定清單中定義的套件的類別。
提供日誌服務,以標準格式進行一致的錯誤日誌記錄。提供的日誌記錄服務還可以解析每個異常的詳細程度和日誌記錄等級。該模組在 nrich-webmvc 模組中用於異常日誌記錄,但可以輕鬆地替換為其他一些自訂實作。
旨在將指定的通知新增至伺服器端回應中,稍後可以在客戶端上顯示。 nrich-notification
支援三種不同的通知嚴重性級別,還可以包含驗證錯誤清單。訊息的定義和解析是透過Spring的MessageSource
特性實現的。
簡化指定 JPA 實體的管理,並提供客戶端可以解釋和建立動態表單和網格的格式化表示。產生的表單和網格可用於實體編輯,無需在伺服器端進行額外的實作。該模組還提供透過 REST API 搜尋、建立、更新和刪除實體的方法。
簡化實體的查詢。 nrich-search
是基於 Spring Data JPA 庫,是為了簡化客戶端各種搜尋表單的查詢建立而建立的。查詢可以根據不同類型的輸入自動形成,例如查詢類別或帶有搜尋欄位清單的字串。此外,特殊的配置類別用於定義在查詢建立中如何使用提供的查詢值。
旨在取代 Spring Security csrf 功能。 nrich-security-csrf
可與 Spring Web MVC 和 WebFlux 函式庫搭配使用。客戶端應定義初始令牌 url,然後將產生的令牌與標頭中的每個請求一起發送或作為參數發送。
為 Spring Boot 新增在 nrich 中使用的附加功能。
包含用於 Spring 存取的實用程式類,例如用於從靜態上下文解析ApplicationContext
ApplicationContextHolder
。
包含額外的jakarta-validation-api
約束和被證明常用的驗證器,例如NotNullWhen
驗證器。
提供建置在 Spring Web MVC 框架之上的附加功能。主要目的是透過NotificationErrorHandlingRestControllerAdvice
來處理異常,該通知透過記錄異常來處理異常,然後建立通知並將其發送到客戶端以及異常的描述。此模組使用 nrich-notification 模組進行通知處理,使用 nrich-logging 進行日誌記錄。 nrich-webmvc
也加入了處理綁定(即將空字串轉換為 null)和區域設定解析的附加類別。