프로젝트일지

개인 프로젝트 일지_5 | MongoDB , 스프링 부트 연동 및 테스트

백엔드 개발자 - 젤리곰 2024. 6. 5. 18:10
728x90

1. application.properties 설정

#MongoDB configuration
spring.data.mongodb.uri=//하단 설명참조
spring.data.mongodb.database=<데이터베이스명>

✔️spring.data.mongodb.uri

클러스터를 생성할 때, 메모해놨던 코드를 사용해야한다.

Add your connection string into your application code 밑에 가려져있던 저 부분을 복붙해온다음에

DB 사용자명, DB 비밀번호부분을 내 것으로 수정하면 된다.

 

✔️spring.data.mongodb.database

연동하고자하는 database명을 적어주면 된다.

database가 없으면 미리 생성해줘야한다.

 

2. 디렉토리 경로

빨간색 체크 표시 되어있는게 mongoDB 연동 테스트 코드다.

 

3. 코드

✅TestUser

package Project_1st.test.entity;

import jakarta.persistence.Id;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "testUser")
@Getter
@Setter
public class TestUser {

    @Id
    private String id;
    private String name;

    // Constructors
    public TestUser() {}

    public TestUser(String name) {
        this.name = name;
    }
}

@Document(collection = "testUser")

-> TestUser 엔티티를 testUser 컬렉션에 매핑한다.

(컬렉션을 미리 만들어두지 않아도 testUser 컬렉션이 자동으로 생성된다.)

 

✅TestUserRepository

package Project_1st.test.repository;

import Project_1st.test.entity.TestUser;
import org.springframework.data.mongodb.repository.MongoRepository;

public interface TestUserRepository extends MongoRepository<TestUser, String> {
}

MongoRepository 인터페이스는 기본적인 CRUD 작업을 수행하게끔 메서드를 제공한다.

 

✅MongodbTestApplication

package Project_1st.test;

import Project_1st.test.entity.TestUser;
import Project_1st.test.repository.TestUserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;

@SpringBootApplication
@EnableMongoRepositories(basePackageClasses = TestUserRepository.class)
public class MongodbTestApplication implements CommandLineRunner {

    @Autowired
    private TestUserRepository testUserRepository;

    public static void main(String[] args) {
        SpringApplication.run(MongodbTestApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        // 데이터 삽입
        TestUser user = new TestUser("ururuwave");
        testUserRepository.save(user);

        // 데이터 조회
        testUserRepository.findAll().forEach(System.out::println);
    }
}

✔️@EnableMongoRepositories(basePackageClasses = TestUserRepository.class)

->@EnableMongoRepositories 어노테이션이 있으면 지정한 패키지내의 모든 리포지토리 인터페이스를 스캔한다.

TestUserRepository.class가 위치한 패키지 기준으로 리포지토리를 스캔한다.

 

✔️ CommandLineRunner를 구현하여 TestUser를 저장하고 조회한다.

 

4. 결과

MongoDB Compass로 확인한 결과 'ururuwave'사용자가 잘 들어왔음을 알 수 있다.

728x90