[Spring Boot] Mongodb example 사용하기
[Spring Boot] Mongodb example 사용하기
Spring Boot Web app 에서 mongodb 연동하여 사용하는 방법이 한방에 되는 것이 없어
기억을 남기기 위하여 작성합니다.
작업 환경
* 작업 IDE : Visual Studio Code
* 외부 Linux PC에 MongoDB 설치됨.
* web srping initializer 사용하여 프로젝트 초기화 생성
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/
'IT > PHP Web JS CSS HTML..' 카테고리의 다른 글
[Spring Boot] HTML CSS JS 변경 사항 자동 반영 설정 - Auto resource sync / reload settings (0) | 2021.01.07 |
---|---|
[node js] CORS 에러 해결 방법 example [Multi host 사용하기] (0) | 2020.12.22 |
[PHP] PHP 메뉴얼 사이트 (0) | 2019.12.10 |
[생활코딩] bitnami wamp 설치 및 요약 (0) | 2019.12.09 |
Online code editors : html tag online 테스트 (0) | 2019.12.09 |