문제 발견 콘솔 화면

핵심 예외 메시지
Invalid bean definition with name 'elasticsearchClient' defined in class path resource [com/example/demo/config/MyClientConfig.class]
예외 원인
해당 예외의 원인은 elasticsearchClient라는 빈이 유효하지 않은 정의이기 때문입니다.
문제 상황
이건 제가 ElasticsearchClient만 따로 사용하려고 빈 등록을 해둔 상태였습니다.

사실 여태 제가 Spring data Elasticsearch를 사용하는 것이 아닌 elasticsearch-rest-client만 의존성에 추가해서 사용하고 있는 줄 알았습니다…
그래서 빈 등록을 저렇게 해둔 거였는데 Build.gradle 파일을 살펴보던 중 제가 Spring data Elasticsearch를 의존성에 추가해둔 사실을 발견했습니다…

Build.gradle 파일을 확인하게 된 이유는 elasticsearch-rest-client를 사용하는 중 어떤 의문이 들어서였습니다. 그 의문이란 ElasticSearch에 요청을 보내기 위해 많은 불편함을 느끼면서 과연 방법이 저 라이브러리를 사용하는 방법밖에 없을까? 하는 것이었습니다.
그래서 Spinrg boot를 사용하는데 좀 더 쉽게 Elasticseach에 접근할 수 있는 라이브러리 혹은 프레임워크가 없을까? Redis나 Elasticsearch나 NoSQL이라는 범주에 속하는데 Redis는 Spring data Redis가 존재하는데 Elasticserach는 이런게 없을까? 하고 찾아보니 존재했습니다…

그래서 Srping data Elasticsearch 공식 문서를 확인해서 설정 클래스를 다시 만들었습니다.
@Configuration
public class MyClientConfig extends ElasticsearchConfiguration {
@Override
public ClientConfiguration clientConfiguration() {
return ClientConfiguration.builder()
.connectedTo("3.36.169.149:9200")
.build();
}
}

잘 통과합니다...
그리고 추가로 제가 만든 설정 클래스 하나로 어떤 빈들이 추가로 등록되는지 궁금해서 확인해 봤습니다.

Spring data Elasticsearch 사용법은 추후 포스팅할 예정입니다!
'Error' 카테고리의 다른 글
vscode 터미널 보안 오류 (0) | 2024.12.30 |
---|---|
Git : error: unable to start editor 'vi' (0) | 2024.11.26 |
Spring boot(호스트 PC) 와 MySQL (docker container) 연동 실패 (0) | 2024.07.11 |
Node.js "no such file or directory" (0) | 2024.07.08 |
WslRegisterDistribution failed with error: 0x80370114 (0) | 2023.08.07 |