1. Hibernate-OGM for MongoDB
2. Spring-Data MongoDB
1번은 hibernate-core, hibernate-search, hibernate-ogm 을 활용하여 검색 시스템을 만들어봐서, 이번에는 spring-data-mongodb 를 사용해보기로 했습니다.
예전에 spring-data-jpa 에서 repository 의 concrete class 를 안 만들고, 동적으로 생성해서 사용하는 방법을 보고, 와 정말 이렇게 되면 코딩량이 엄청 줄어들겠다 싶더군요...
그래서 이번에 spring-data-mongo 의 예제를 보고, 제 나름대로 다시 구성해 봤습니다.
spring-data 의 여러가지 모듈 사용법이 더 좋고, 생산성이 높다면, 앞으로는 이 것을 계속 사용하려고 합니다...
우선 spring-data-mongo 를 사용하기 위해 dependency에 다음을 추가합니다.
pom.xml
다음으로 도메인 모델로 Album class 를 정의합니다.
Album.java
@Document 는 org.springframework.data.mongodb.core.mapping.Document 입니다.
이 어노테이션이 정의되면, MongoDB 의 Document 로 선언한 것입니다.
다음은 Album용 Repository를 정의합니다.
AlbumRepository.java
테스트용 환경 설정은 다음과 같이 합니다.
MongoConfiguration.java
주의할 점은 Repository 들을 실제 구현한 것이 아니라, Spring 이 동적으로 구현할 수 있도록 @EnableMongoRepositories 를 선언해 줘야 한다는 것입니다.
마지막으로 테스트 코드는 다음과 같습니다.
AlbumRepositoryIntegrationTest.java
를 구현하면 됩니다.
나머지 코드는 Spring-Data Mongo 의 예제에 있습니다. 그 예제는 xml 로 환경설정을 하고, 몇가지 제가 필요없는 코드를 제거했습니다.
시간나면 github에 따로 분리해서 올리도록 해보겠습니다...
Album.java
@Document 는 org.springframework.data.mongodb.core.mapping.Document 입니다.
이 어노테이션이 정의되면, MongoDB 의 Document 로 선언한 것입니다.
다음은 Album용 Repository를 정의합니다.
AlbumRepository.java
테스트용 환경 설정은 다음과 같이 합니다.
MongoConfiguration.java
주의할 점은 Repository 들을 실제 구현한 것이 아니라, Spring 이 동적으로 구현할 수 있도록 @EnableMongoRepositories 를 선언해 줘야 한다는 것입니다.
마지막으로 테스트 코드는 다음과 같습니다.
AlbumRepositoryIntegrationTest.java
를 구현하면 됩니다.
나머지 코드는 Spring-Data Mongo 의 예제에 있습니다. 그 예제는 xml 로 환경설정을 하고, 몇가지 제가 필요없는 코드를 제거했습니다.
시간나면 github에 따로 분리해서 올리도록 해보겠습니다...
댓글 없음:
댓글 쓰기