Spring 5.3.2 + mongodb 4.4.3 연동

북마크 추가

안녕하세요

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>

2. *-context.xml

ID :  mongodb 계정
PASSWORD : 비밀번호
IP :  mongodb서버 아이피
PORT : mongodb 포트
DBName : DB명
authSource = 저 같은 경우 mongdb의 admin 데이터베이스의 계정을 사용 하기 때문에 admin 설정

<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");
}

AD
관리자
2021-01-08 21:14
SHARE