티스토리 뷰
728x90
1. WebFlux에서 de.flapdoodle.embed:de.flapdoodle.embed.mongo 라이브러리는 내장 mongodb를 지원한다.
1-1 기본적으로 테스트 용도로 만들어졌다.
2. 보통은 test 용도로 사용되며 gradle에서는 testImplemetation으로 지정되어 테스트에서만 활성화 된다.
2-1 아래는 Spring initializr에서 gradle로 지정하여 생성한 build.gradle파일이다. 기본적으로 test로 지정되어 있다.
plugins {
id 'org.springframework.boot' version '2.3.3.RELEASE'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group = 'pe.pilseong'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testImplementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo'
testImplementation 'io.projectreactor:reactor-test'
}
test {
useJUnitPlatform()
}
3. 하지만 귀찮게 mongodb를 별도로 설치하지 않고 프로그램을 테스트 하고 싶은 경우에 내장 DB를 사용할 수 있다.
3-1 별건 아니지만 내장 DB를 implementation scope으로 변경하면 된다.
3-2 많은 사람들이 scope을 생각하지 않고 왜 일반적인 환경에서는 기동이 안되는지 의문을 가질 수 있는데
3-2-1 스코프만 생각하면 의문은 쉽게 해결된다.
plugins {
id 'org.springframework.boot' version '2.3.3.RELEASE'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group = 'pe.pilseong'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive'
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation 'de.flapdoodle.embed:de.flapdoodle.embed.mongo'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
}
testImplementation 'io.projectreactor:reactor-test'
}
test {
useJUnitPlatform()
}
4. 이렇게 사용할 경우에는 테스트 시에 문제가 될 수 있는데, port를 0으로 지정하면 문제가 해결되는 경우가 있다.
4-1 따라서 테스트 용로도로만 사용하는 것이 바람직하다.
4-2 개발시 일반 runtime 환경에서는 docker로 mongodb를 사용하는 것이 좋다.
728x90
'Spring > Spring Advanced' 카테고리의 다른 글
WebFlux : Reactive Stream Specification (0) | 2020.09.07 |
---|---|
WebFlux : Spring MVC에서 WebFlux 변환 (0) | 2020.08.30 |
WebFlux : 데이터를 찾지 못한 경우 Exception 발생하기 (0) | 2020.08.29 |
Spring Advanced : Spring Boot + Security login custom 메소드로 구현하기 (0) | 2020.06.09 |
Spring Advanced : Rest + Security + Thymeleaf 로그인, 회원가입 기능이 포함된 Rest Template CRUD 클라이언트 작성하기 (0) | 2020.05.27 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
TAG
- RestTemplate
- 스프링부트
- 설정
- one-to-one
- 상속
- 자바
- Spring Security
- form
- login
- Angular
- Validation
- 매핑
- 외부파일
- MYSQL
- spring boot
- 하이버네이트
- Security
- hibernate
- Rest
- WebMvc
- one-to-many
- jsp
- 스프링
- mapping
- 로그인
- crud
- 설정하기
- XML
- Spring
- Many-To-Many
250x250