build.gradle 에 dependency 추가
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-webflux'
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-mongodb-reactive', version: '2.5.1'
compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.20'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
testImplementation group: 'junit', name: 'junit', version: '4.13.2'
}
여기서 주의해야 할 것은 'spring-boot-starter-data-mongodb' 를 사용하면 안된다는 것이다.
mongodb만 사용하게 되면 'MongoRepository' 만 인식하게 된다.
꼭, spring-boot-starter-data-mongodb-reactive 를 사용해야 한다.
그래야 reactive 까지 인식 가능하다.
Repository 추가
package com.example.demo22.repository;
import com.example.demo22.documents.Item;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
public interface ItemReactiveRepository extends MongoRepository<Item, String> {
}
extends를 통해서 MongoRepository 또는 ReactiveMongoRepository를 추가해 줘야 한다.
이걸 추가 하게 되면 Spring 에서는 Repository를 lookup 하게 된다.
로그를 보면 조금 더 이해가 쉽다.
2021-06-22 18:52:15.995 INFO 11684 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 175 ms. Found 1 MongoDB repository interfaces.
2021-06-22 18:52:16.045 INFO 11684 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Reactive MongoDB repositories in DEFAULT mode.
2021-06-22 18:52:16.050 INFO 11684 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 5 ms. Found 0 Reactive MongoDB repository interfaces.
2번의 Repository Interfaces를 Scanning하는데,
한번은 MongoRepository를 Scanning하고,
Found 1 MongoDB repository inte
한번은 ReactiveRepository를 Scanning 한다.
Reactive MongoDB repository interfaces.
만약에 Scanning이 되지 않는다면
@SpringBootApplication
이 있는 Class에 '@EnableMongoRepositories' 를 추가 하면 된다.
package com.example.demo22;
import com.example.demo22.repository.ItemReactiveRepository;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
@SpringBootApplication
@EnableMongoRepositories
public class Demo22Application {
public static void main(String[] args) {
SpringApplication.run(Demo22Application.class, args);
}
}
물론 starter Dependency를 입력하는 것 만으로도 해당 Annotation은 자동으로 붙어서 작동하는 것이 맞음으로 이와 같은 설정은 하지 않아도 작동 되어야 한다.
Properties 설정
마지막으로 Mongo DB 접속 정보를 지정해 줘야 한다.
로컬 기준으로 application.properties에 아래와 같이 설정해 주면 된다.
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=local
728x90
반응형
'JAVA' 카테고리의 다른 글
Byte hex 출력하기 / (bytes[i] & 0xff) + 0x100 가 뭐지? (0) | 2022.08.28 |
---|---|
JavaFX Unrecognized option: --module-path (0) | 2022.02.28 |
Spring Boot Profile 설정 (0) | 2021.06.16 |
Java의 동기화 및 Locking 기법 들 (Synchronized, ReentrantLock, Semaphore, Atomic Package, varHandle) (0) | 2021.05.31 |
javaFX java version 11이상에서 실행하기 (2) | 2021.05.28 |