트러블슈팅
[Spring] Spring boot 에서 mongoDB 붙이기
녹차와새우탕
2020. 1. 8. 21:53
build.gradle 에 의존성 추가
implementation "org.springframework.boot:spring-boot-starter-data-mongodb:$springBootVersion"
application.yml 에 접속정보 추가
spring.data.mongodb.host, port... 등을 추가해야함
spring:
data:
mongodb:
host:
port:
그 외 설정
DB 접속하는 빈 객체 만들거나 DB 접속 설정을 바꾸거나 하는 config 클래스를 만들수도 있다.
하지만 spring boot 에는 auto configuration 이라는게 있어서 알아서 해주는 듯(기본설정으로)
그래서 application.yml에 속성값만 바꾸면 됨
@ConfigurationProperties(prefix = "spring.data.mongodb") //application.yml 값 가져오기
@EnableMongoRepositories(basePackageClasses = arrayOf(MongoRepository::class))
class MongoDBConfiguration : AbstractMongoClientConfiguration() {
lateinit var database: String
lateinit var host: String
lateinit var port: String
lateinit var username: String
lateinit var password: String
override fun getDatabaseName(): String {
return database
}
override fun mongoClient(): MongoClient {
return MongoClients.create("mongodb://${username}:${password}@${host}:${port}")
}
}
test 코드가 에러난 이유
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type...
이거 그냥 빈이 없다는 얘기임
@DataMongoTest -> 몽고 테스트용
@SpringBootTest -> 전체 빈 올려서 테스트 하는 것