분류

고급 스프링 데이터 카우치베이스

에서 이전  시작하기 위해 살펴본 게시물 Spring 데이터 카우치베이스. 이제 조금 더 정교해질 차례입니다(정교하거나 고급스럽다는 것이 더 복잡하다는 뜻이 아님을 명심하세요). 캐싱, 문서 유효성 검사, REST API를 통한 리포지토리 노출과 같은 몇 가지 훌륭한 기능을 살펴봅시다.

캐싱

Spring 코어 모듈은 매우 멋진 캐시 추상화 JSR-107(JCache)을 지원합니다. 예시를 살펴보겠습니다. 메서드의 결과가 캐시되도록 하려면 다음 어노테이션을 사용하면 됩니다:

여기서 'myCache'는 제가 구성한 기존 캐시 인스턴스의 이름입니다. 문서의 키는 키 정규식 "'cache:'+#param"을 사용하여 확인되며, 여기서 #param은 'param'이라는 메서드 매개변수입니다. 이렇게 하면 동일한 매개변수에 대해 메서드가 한 번만 실행됩니다. 나중에 메서드가 호출되면 캐시에서 결과를 가져옵니다. 즉, 애플리케이션을 적절하게 구성한 경우 Couchbase에서 결과를 가져옵니다. 캐시 인스턴스를 정의하려면 구성에 다음을 추가합니다:

및 @EnableCaching 어노테이션을 추가하세요.

이미 Spring의 캐싱 시스템을 사용 중이라면 현재 사용 중인 저장소를 Couchbase로 교체하는 것은 정말 쉽습니다. 사용 중인 cacheManager가 CouchbaseCacheManager 구현인지 확인하기만 하면 됩니다.

문서 유효성 검사

필드 유효성 검사는 비즈니스 객체를 다룰 때 흔히 하는 작업입니다. 예를 들어 지정된 필드를 Couchbase에 저장하기 전에 null이 아닌지 확인하거나 필드가 140자를 넘지 않는지 확인하는 것이 그 예입니다. 좋은 소식은 이 작업이 실제로 매우 쉽다는 것입니다. 최대 절전 모드 유효성 검사를 사용할 수 있습니다. 가장 먼저 해야 할 일은 필요한 종속성을 pom에 추가하는 것입니다:

다음 단계는 저장할 객체가 유효성 검사 요구 사항을 충족하지 않을 때 ConstraintViolationException을 던지는 ValidationListener 빈을 추가하는 것입니다:

@Bean ValidatingCouchbaseEventListener validationEventListener() { return new ValidatingCouchbaseEventListener(validator()); }

이제 필수 구성이 완료되었으므로 다음과 같이 POJO 객체에 Hibernate 유효성 검사 어노테이션을 추가할 수 있습니다:

이제 내 애플리케이션에서 이 프로퍼티가 null로 설정된 객체를 저장하려고 할 때마다 ConstraintViolationException이 발생합니다.

물론 @NotNull 외에도 다양한 어노테이션이 있습니다. 이러한 주석은 스프링 문서.

REST API로 리포지토리 노출하기

이렇게 짧은 시간 내에 리포지토리를 사용할 수 있는 것도 좋지만, 더 좋은 점은 종속성을 추가하는 것만으로 REST API 뒤에 리포지토리를 노출할 수 있다는 사실입니다. 이를 위해서는 spring-data-rest-webmvc를 사용해야 합니다. 그래서 저는 이렇게 종속성에 추가합니다:

그리고 짜잔(저는 프랑스 출신이기 때문에 짜잔을 쓸 자격이 있다고 생각합니다). 이 리포지토리에 있는 모든 개체가 노출됩니다. HATEOAS 스타일:

JSON 문서에서 일부 속성을 보려면 저처럼 게터를 추가하는 것을 잊지 마세요...

여기까지 스프링 데이터 카우치베이스에 대한 블로그 포스트 시리즈입니다. 댓글을 달아 공유해 주시고, 더 많은 Spring 및 Couchbase 리소스를 원하시는지, 사용 중이거나 사용하고 싶은지 알려주세요.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 로랑 도귄

Laurent는 파리에 사는 괴짜 금속공학도입니다. 주로 Java로 코드를 작성하고 AsciiDoc으로 구조화된 텍스트를 작성하며 데이터, 리액티브 프로그래밍 및 기타 유행어에 대해 자주 이야기합니다. 또한 Clever Cloud와 Nuxeo의 개발자 옹호자로 활동하며 해당 커뮤니티가 더 크고 강력하게 성장할 수 있도록 자신의 시간과 전문성을 바쳤습니다. 현재 Couchbase에서 개발자 관계를 운영하고 있습니다.

댓글 하나

  1. 이 프로젝트의 소스 코드에 대한 링크가 있나요? Spring-data-rest-webmvc 종속성이 내 리포지토리를 노출하는 데 문제가 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.