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())) } }
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ