Couchbase — це документоорієнтована розподілена
багатомодельна база даних NoSQL з відкритим вихідним кодом, оптимізована для інтерактивних програм. На додаток
Spring Boot передбачає автоконфігурацію для 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()))
}
}
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ