Couchbase – это документоориентированная распределенная многомодельная база данных NoSQL с открытым исходным кодом, оптимизированная для интерактивных приложений. В добавок Spring Boot предусматривает автоконфигурацию для Couchbase и абстракции, предоставляемые через Spring Data Couchbase. Для удобного сбора зависимостей существуют "стартовые пакеты" spring-boot-starter-data-couchbase и spring-boot-starter-data-couchbase-reactive
Подключение к Couchbase
Можно получить Cluster, добавив Couchbase SDK и определенную конфигурацию. Свойства spring.couchbase.* можно использовать для настройки соединения. Как правило, указывается строка подключения, имя пользователя и пароль, как это показано в следующем примере:
spring.couchbase.connection-string=couchbase://192.168.1.123
spring.couchbase.username=user
spring.couchbase.password=secret
spring:
couchbase:
connection-string: "couchbase://192.168.1.123"
username: "user"
password: "secret"
Также можно настроить некоторые параметры ClusterEnvironment. Например, в следующей конфигурации изменяется параметр времени ожидания, используемый для открытия нового Bucket, а также активируется поддержка протокола SSL:
spring.couchbase.env.timeouts.connect=3s
spring.couchbase.env.ssl.key-store=/location/of/keystore.jks
spring.couchbase.env.ssl.key-store-password=secret
spring:
couchbase:
env:
timeouts:
connect: "3s"
ssl:
key-store: "/location/of/keystore.jks"
key-store-password: "secret"
spring.couchbase.env.* для получения более подробной информации. Чтобы получить больше контроля, можно использовать один или несколько бинов
ClusterEnvironmentBuilderCustomizer.
Репозитории Spring Data Couchbase
Spring Data содержит средства поддержки репозиториев для Couchbase.
Автоконфигурируемый экземпляр CouchbaseTemplate можно внедрять так же, как и любой другой бин Spring, при условии наличия бина CouchbaseClientFactory. Это возможно, если имеется описанный выше Cluster, а для бакета (bucket) задано имя:
spring.data.couchbase.bucket-name=my-bucket
spring:
data:
couchbase:
bucket-name: "my-bucket"
В следующих примерах показано, как внедрить бин CouchbaseTemplate:
@Component public class MyBean { private final CouchbaseTemplate template; public MyBean(CouchbaseTemplate template) { this.template = template; } }
@Component class MyBean(private val template: CouchbaseTemplate) { }
Есть несколько бинов, которые можно определить в собственной конфигурации, чтобы отменить те, которые предусмотрены автоконфигурацией:
-
Бин
CouchbaseMappingContext, помеченный аннотацией@Bean, с именемcouchbaseMappingContext. -
Бин
CustomConversions, помеченный аннотацией@Bean, с именемcouchbaseCustomConversions. -
Бин
CouchbaseTemplate, помеченный аннотацией@Bean, с именемcouchbaseTemplate.
Чтобы избежать жесткого кодирования этих имен в собственной конфигурации, можно использовать BeanNames, предусмотренные Spring Data Couchbase. Например, можно настроить используемые преобразователи следующим образом:
@Configuration(proxyBeanMethods = false) public class MyCouchbaseConfiguration { @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) public CouchbaseCustomConversions myCustomConversions() { return new CouchbaseCustomConversions(Arrays.asList(new MyConverter())); } }
@Configuration(proxyBeanMethods = false) class MyCouchbaseConfiguration { @Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) fun myCustomConversions(): CouchbaseCustomConversions { return CouchbaseCustomConversions(Arrays.asList(MyConverter())) } }
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ