Base del sofá

Módulo 5. Spring
Nivel 17 , Lección 9
Disponible

Couchbase es una base de datos NoSQL multimodelo distribuida, orientada a documentos y de código abierto optimizada para aplicaciones interactivas. . Además, Spring Boot proporciona configuración automática para Couchbase y abstracciones proporcionadas a través de Spring Data Couchbase. Para una recopilación conveniente de dependencias, existen "paquetes de inicio" spring-boot-starter-data-couchbase y spring-boot-starter-data-couchbase-reactive

Conectarse a Couchbase

Puedes obtener un Cluster agregando el SDK de Couchbase y alguna configuración. Las propiedades spring.couchbase.* se pueden utilizar para configurar la conexión. Como regla general, la cadena de conexión es especificado, nombre de usuario y contraseña, como se muestra en el siguiente ejemplo:

Propiedades
spring.couchbase.connection-string=couchbase://192.168.1.123
spring.couchbase.nombre de usuario=usuario
spring.couchbase.contraseña=secreto
Yaml
spring:
  couchbase:
    connection-string: "couchbase://192.168.1.123"
    username: "user"
    password: "secret"

También puede configurar algunos parámetros de ClusterEnvironment. Por ejemplo, la siguiente configuración cambia la configuración de tiempo de espera utilizada para abrir un nuevo Bucket y también habilita la compatibilidad con el protocolo SSL:

Propiedades
spring.couchbase.env.timeouts.connect=3s
spring.couchbase.env.ssl.key-store=/ubicación/of/keystore.jks
spring.couchbase.env.ssl.key-store-password=secret
Yaml
spring:
  couchbase:
    env:
      timeouts:
        connect: "3s"
      ssl:
        key-store: "/location/of/keystore.jks"
        key-store-password: "secret"
Consulte las propiedades spring.couchbase.env.* para obtener más detalles. Para obtener más control, puede utilizar uno o más beans ClusterEnvironmentBuilderCustomizer.

Repositorios de Spring Data Couchbase

Spring Data incluye soporte de repositorio para Couchbase.

Una instancia CouchbaseTemplate autoconfigurable se puede implementar como cualquier otro Spring Bean, siempre que el bean CouchbaseClientFactory esté presente. Esto es posible si tiene el Cluster descrito anteriormente y se proporciona el nombre del depósito:

Propiedades
spring.data.couchbase.bucket-name=mi-bucket
Yaml
spring:
  data:
    couchbase:
      bucket-name: "my-bucket"

Los siguientes ejemplos muestran cómo implementar el bean CouchbaseTemplate:

Java
import org.springframework.data.couchbase.core.CouchbaseTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyBean {
    private final CouchbaseTemplate template;
    public MyBean(CouchbaseTemplate template) {
        this.template = template;
    }
 // ...
 public String someMethod() {
        return this.template.getBucketName();
    }
}
Kotlin
import org.springframework.data.couchbase.core.CouchbaseTemplate
import org.springframework.stereotype.Component
@Component
class MyBean(private val template: CouchbaseTemplate) {
 // ...
 fun someMethod(): String {
        return template.bucketName
    }
}

Hay varios beans que puedes definir en tu propia configuración para anular los proporcionados por la configuración automática:

  • Un bean CouchbaseMappingContext marcado con la anotación @Bean, denominado couchbaseMappingContext.

  • Un bean CustomConversions marcado con una anotación @Bean denominada couchbaseCustomConversions.

  • Un bean CouchbaseTemplate marcado con la anotación @Bean, denominado couchbaseTemplate.

Para evitar codificar estos nombres en su propia configuración, puede utilizar los BeanNames proporcionados por Spring Data Couchbase. Por ejemplo, puedes configurar los convertidores que utilizas de la siguiente manera:

Java
import org.assertj.core.util.Arrays;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.couchbase.config.BeanNames;
import org.springframework.data.couchbase.core.convert.CouchbaseCustomConversions;
@Configuration(proxyBeanMethods = false)
public class MyCouchbaseConfiguration {
    @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS)
    public CouchbaseCustomConversions myCustomConversions() {
        return new CouchbaseCustomConversions(Arrays.asList(new MyConverter()));
    }
}
Kotlin
import org.assertj.core.util.Arrays
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.data.couchbase.config.BeanNames
import org.springframework.data.couchbase.core.convert.CouchbaseCustomConversions
@Configuration(proxyBeanMethods = false)
class MyCouchbaseConfiguration {
    @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS)
    fun myCustomConversions(): CouchbaseCustomConversions {
        return CouchbaseCustomConversions(Arrays.asList(MyConverter()))
    }
}
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION