[Spring Boot] Mongodb example 사용하기

Posted by [하늘이]
2020. 12. 22. 22:41 IT/PHP Web JS CSS HTML..
반응형

[Spring Boot] Mongodb example 사용하기


Spring Boot Web app 에서 mongodb 연동하여 사용하는 방법이 한방에 되는 것이 없어


기억을 남기기 위하여 작성합니다.




작업 환경

* 작업 IDE : Visual Studio Code

* 외부 Linux PC에 MongoDB 설치됨.



* web srping initializer 사용하여 프로젝트 초기화 생성

https://start.spring.io/

spring plugin 사용 가능...방법 다양.



* spring initializr에서 생성한 project zip 파일 압축 해제 후 VsCode 실행하여 폴더 열기


* Property 에 Mongodb 접속 정보 추가.

spring.data.mongodb.uri=mongodb://admin:passXXXX@123.456.123.456:27017/logs?authSource=admin

- 주의 Uri 에 접속 ID / PW / database name 같이 넣음.

ID : admin

PW : passXXXX

database name : logs

- 접속 시 authSource 를 id와 일치 시킴.

?authSource=admin

- uri 에 추가 정보를 넣어야 되는 경우 아래 사항 참조하여 검색 필요.

spring.data.mongodb.uri=mongodb://myusername:mypassword@localhost/?authSource=admin&authMechanism=SCRAM-SHA-1

spring.data.mongodb.database=test



* Schema Class 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.net.harry.model;
 
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
 
import lombok.Data;
 
@Data
@Document(collection = "Tests")
public class Test {
 
    @Id
    private String id;
    private String data1;
    private int data2;
    
    @Override
    public String toString() {
      return "Test [Data1=" + Data1 + ", Data2=" + data2 + "]";
    }
}
cs




* Repository 생성

1
2
3
4
5
6
7
8
9
10
11
* Repository 생성
package com.net.harry.repository;
 
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
 
import com.net.harry.model.Test;
 
@Repository
public interface TestRepository extends MongoRepository<Test, String>{
}
cs



* Find 동작 확인을 위한 controller 하나 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.net.harry.controller;
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
 
import com.net.harry.model.Test;
import com.net.harry.repository.TestRepository;
import lombok.extern.slf4j.Slf4j;
 
@Slf4j
@Controller
@RequestMapping("/test")
public class ControlVehicles {
    
 
    @Autowired
    public TestRepository testRepo;
 
    @GetMapping("/list")
    public String list(Model model) {
 
        List<Test> aaaa = testRepo.findAll();
        log.info(aaaa.toString());
        return "/list";
    }
}
cs



* 실행 후 browser 로 접속 하면 VsCode 의 로그로 DB에 들어 있는 것이 찍힘.

Rest api 로 생성하면 Postman에서 바로 볼수 있음.



참고, Spring boot mongodb pagination 설명링크

- mongodb repository 직접 연결하여 paging 처리하는 것 설명자료

https://bezkoder.com/spring-boot-mongodb-pagination/




















반응형