안녕하세요
Spring 5와 mongodb 4 연동입니다.
Srping version : 5.3.2
mongodb 4.4.3
1. pom,xml
여기서는 mongodb legacy driver 4.2.0-beta1과 spring-data-mongodb 3.1.0 버전을 사용하였습니다.
<!-- https://mvnrepository.com/artifact/org.mongodb/mongodb-driver-legacy --> <dependency> <groupid>org.mongodb</groupid> <artifactid>mongodb-driver-legacy</artifactid> <version>4.2.0-beta1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-mongodb --> <dependency> <groupid>org.springframework.data</groupid> <artifactid>spring-data-mongodb</artifactid> <version>3.1.0</version> </dependency>
<mongo:mongo-client id="mongoClient" connection-string="mongodb://ID:PASSWORD@IP:PORT/DBName?authSource=admin"/> <mongo:db-factory id="mongoDbFactory" dbname="DBName" mongo-client-ref="mongoClient" /> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg ref="mongoDbFactory"/> </bean>
3. 사용
간단하게 기존 mybatis 용도로 사용중인 dto를 사용하여 insert 하는 방법입니다.
3.1 dto ( lombok 사용중)
@Id annotation 사용을 하면 mongodb에 insert시 키로 들어갑니다.
package com.trandent.dto; import org.springframework.data.annotation.Id; import lombok.Data; import lombok.extern.slf4j.Slf4j; @Slf4j @Data public class TestDto{ @Id private long aaa; private String bbb; private String ccc; }
3. service
- mongoTemplate 의존성 주입
mongoTemplate.save를 하게 되면 데이터가 없는 경우 insert 있는 경우 upated 됩니다.
아래와 같이 사용하시면됩니다.
collectionName을 넣어주면 해당 이름으로 데이터가 적재됩니다.
@Autowired
private MongoTemplate mongoTemplate;
method(){
mongoTemplate.save(testDto,"collectionName");
}