Nrich は CROZ で開発された Java ライブラリで、その目的は JVM でのアプリケーション開発を少し簡単にすることです。これは、複数のプロジェクトで役立つことが判明したモジュールを共通のライブラリに結合することによって作成されました。このライブラリは Spring Framework に基づいているため、構成を容易にするためにほとんどのモジュールに Spring Boot スターターが提供されます。
ほとんどの機能グループは複数のモジュールで構成されています。
api
接尾辞があり、モジュールの API (サービス インターフェイス、パラメータ、戻り値の型など) を表すクラスが含まれます。spring-boot-starter
サフィックスがあり、指定されたモジュールの Spring Boot 自動構成が含まれていますSpring Boot 環境では、Spring Boot スターター モジュールのみを依存関係として追加する必要があります。
次の表には、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
)。このモジュールは、 @Entity
アノテーションが付けられたクラス、または指定されたリストで定義されたパッケージからのクラスの空の文字列を null にシリアル化し、クラス名を完全修飾クラス名にシリアル化する Jackson モジュールも提供します。
標準形式で一貫したエラーログを記録するためのログサービスを提供します。提供されたログ サービスは、各例外の冗長性とログ レベルも解決できます。このモジュールは例外ロギングのために nrich-webmvc モジュールで使用されますが、他のカスタム実装に簡単に置き換えることができます。
指定された通知をサーバー側の応答に追加し、後でクライアント側に表示できるようにすることを目的としています。 nrich-notification
3 つの異なる通知重大度レベルをサポートし、検証エラーのリストを含めることもできます。メッセージの定義と解決は、Spring のMessageSource
機能を使用して実現されます。
指定された JPA エンティティの管理を簡素化し、クライアント側で解釈して動的なフォームとグリッドを作成できるフォーマットされた表現を提供します。生成されたフォームとグリッドは、サーバー側で追加の実装を行わなくても、エンティティの編集に使用できます。このモジュールは、REST API を介してエンティティを検索、作成、更新、削除するためのメソッドも提供します。
エンティティのクエリを簡素化します。 nrich-search
Spring Data JPA ライブラリの最上位に基づいており、クライアント側でさまざまな検索フォームのクエリの作成を簡素化する手段として作成されました。クエリは、クエリ クラスや検索フィールドのリストを含む文字列など、さまざまなタイプの入力から自動的に作成できます。また、特別な構成クラスを使用して、提供されたクエリ値がクエリ作成時にどのように使用されるかを定義します。
Spring Security csrf 機能の代替として意図されています。 nrich-security-csrf
Spring Web MVC ライブラリと WebFlux ライブラリの両方で動作します。クライアントは、初期トークン URL を定義し、その後、生成されたトークンを各リクエストのヘッダーまたはパラメーターとして送信する必要があります。
nrich 内で使用される Spring Boot に追加機能を追加します。
静的コンテキストからApplicationContext
解決するためのApplicationContextHolder
など、Spring アクセス用のユーティリティ クラスが含まれています。
追加のjakarta-validation-api
制約と、 NotNullWhen
バリデーターなど、一般的に使用されることが証明されたバリデーターが含まれています。
Spring Web MVC フレームワーク上に構築された追加機能を提供します。主な目的は、例外をログに記録し、例外の説明を含む通知を作成してクライアント側に送信することで例外を処理する、 NotificationErrorHandlingRestControllerAdvice
を通じて例外を処理することです。このモジュールは、通知処理に nrich-notification モジュールを使用し、ログ記録に nrich-logging を使用します。 nrich-webmvc
バインディング (つまり、空の文字列を null に変換) とロケール解決を処理する追加のクラスも追加します。