Spring Boot: работа с NoSQL, Spring Data Elasticsearch

Подключение к Elasticsearch с помощью Spring Data

Для подключения к Elasticsearch должен быть определен bean-компонент RestHighLevelClient, автоматически настроенный Spring Boot или предоставленный приложением вручную. С этой конфигурацией ElasticsearchRestTemplate может быть внедрен как любой другой Spring bean-компонент, как показано в следующем примере:

@Component
public class MyBean {

    private final ElasticsearchRestTemplate template;

    public MyBean(ElasticsearchRestTemplate template) {
        this.template = template;
    }

    // ...

}

При наличии spring-data-elasticsearch и необходимых зависимостей для использования WebClient (обычно spring-boot-starter-webflux) Spring Boot также может автоматически настраивать ReactiveElasticsearchClient и ReactiveElasticsearchTemplate в качестве bean-компонентов. Они являются реактивным эквивалентом других клиентов REST.

Spring Data Elasticsearch репозитории

Spring Data включает поддержку репозиториев для Elasticsearch. Как и в случае с репозиториями JPA, основной принцип заключается в том, что запросы создаются для вас автоматически на основе имен методов.

Фактически и Spring Data JPA, и Spring Data Elasticsearch совместно используют одну общую инфраструктуру. Вы можете взять пример JPA и, предполагая, что City теперь является классом Elasticsearch @Document, а не JPA @Entity, он работает аналогичным образом.

Spring Boot поддерживает как классические, так и реактивные репозитории Elasticsearch, используя beans ElasticsearchRestTemplate или ReactiveElasticsearchTemplate. Скорее всего, эти компоненты автоматически конфигурируются Spring Boot, если присутствуют необходимые зависимости.

Если вы хотите использовать свой собственный шаблон для поддержки репозиториев Elasticsearch, вы можете добавить свой собственный ElasticsearchRestTemplate или ElasticsearchOperations @Bean, если он называется "elasticsearchTemplate". То же самое относится и к операциям ReactiveElasticsearchTemplate и ReactiveElasticsearchOperations с именем bean-компонента "reactiveElasticsearchTemplate".

Вы можете отключить поддержку репозиториев с помощью следующего свойства:

spring.data.elasticsearch.repositories.enabled=false


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки