🧩 BE
home

MongoTemplate를 이용한 MongoDB와 Spring Boot 연동

Date
2024/10/03
Category
DB
Tag
MongoDB
Detail

의존성 추가

dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' }
Groovy
복사

접속 정보 세팅

application.yml에 mongodb connection을 위한 설정 값들을 세팅한다. mongoDB의 기본 Connection String Format은 mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]] 이다. 깨끗한 맥북 환경을 유지하고자.. 도커에 올려서 테스트할 것이기에, 아래와같이 connectionString을 설정한다.
도커는 아래 명령어로 컨테이너를 실행했다. 이미지는 LTS인 6.0 사용
docker run -d --name mongodb -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=[계정명] -e MONGO_INITDB_ROOT_PASSWORD=[비밀번호] mongo:6.0
PowerShell
복사
spring: data: mongodb: uri: mongodb://[계정명]:[비밀번호]@localhost:27017/health-monitoring?authSource=admin
YAML
복사
docker exec 명령어로 들어가서 내부 db 상태를 확인
이제 커스텀을 위해 mongoDBConfig를 만들어 mongoDatabaseFactory와 mongoTemplate 빈을 생성해준다.
import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory; @Configuration public class MongoDBConfig { @Value("${spring.data.mongodb.uri}") private String connectionString; // MongoDB 연결 객체(MongoClient)를 관리 @Bean public MongoDatabaseFactory mongoDatabaseFactory() { // 내부적으로 MongoClient를 생성해서 MongoDB와 연결 return new SimpleMongoClientDatabaseFactory(connectionString); } // CRUD 작업을 위한 MongoTemplate 등록 @Bean public MongoTemplate mongoTemplate() { return new MongoTemplate(mongoDatabaseFactory()); } }
Java
복사

Model 객체 생성

Reference