Nrich는 JVM에서 애플리케이션 개발을 좀 더 쉽게 만들기 위해 CROZ에서 개발한 Java 라이브러리입니다. 여러 프로젝트에서 유용하다고 판단된 모듈을 공통 라이브러리로 결합하여 만들어졌습니다. 라이브러리는 Spring Framework를 기반으로 하므로 대부분의 모듈에 대해 Spring Boot 스타터를 제공하여 구성을 더 쉽게 만듭니다.
대부분의 기능 그룹은 여러 모듈로 구성됩니다.
api
접미사가 있고 모듈의 API를 나타내는 클래스(서비스 인터페이스, 매개변수, 반환 유형...)를 포함합니다.spring-boot-starter
접미사가 있고 지정된 모듈의 Spring Boot 자동 구성이 포함되어 있습니다.Spring Boot 환경에서는 Spring Boot 시작 모듈만 종속성으로 추가되어야 합니다.
다음 표에는 해당 최소 Java 및 Spring 버전과 함께 다양한 버전이 포함되어 있습니다.
리치 버전 | 자바 버전 | 스프링 부트 버전 |
---|---|---|
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
)에 일반적으로 사용되는 기본값을 설정합니다. 또한 모듈은 빈 문자열을 null로 직렬화하고 @Entity
주석이 달린 클래스 또는 지정된 목록에 정의된 패키지에 있는 클래스에 대해 클래스 이름을 정규화된 클래스 이름으로 직렬화하는 Jackson 모듈을 제공합니다.
표준형식으로 일관된 오류 로깅을 위한 로깅 서비스를 제공합니다. 제공된 로깅 서비스는 각 예외에 대한 자세한 정보 및 로깅 수준을 확인할 수도 있습니다. 이 모듈은 예외 로깅을 위해 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을 정의한 후 헤더 또는 매개변수로 각 요청과 함께 생성된 토큰을 보내야 합니다.
nrich 내에서 사용되는 Spring Boot에 추가 기능을 추가합니다.
정적 컨텍스트에서 ApplicationContext
확인하기 위한 ApplicationContextHolder
와 같은 Spring 액세스용 유틸리티 클래스가 포함되어 있습니다.
NotNullWhen
유효성 검사기와 같이 일반적으로 사용되는 것으로 입증된 추가 jakarta-validation-api
제약 조건 및 유효성 검사기가 포함되어 있습니다.
Spring Web MVC 프레임워크 위에 구축된 추가 기능을 제공합니다. 주요 목적은 예외를 기록하고 예외 설명과 함께 알림을 생성하여 클라이언트 측에 보내는 방식으로 예외를 처리하는 NotificationErrorHandlingRestControllerAdvice
를 통해 예외를 처리하는 것입니다. 이 모듈은 알림 처리를 위해 nrich-notification 모듈을 사용하고 로깅을 위해 nrich-logging을 사용합니다. nrich-webmvc
바인딩(즉, 빈 문자열을 null로 변환) 및 로케일 확인을 처리하는 추가 클래스도 추가합니다.