领先一步
VMware 提供培训和认证,助您加速进步。
了解更多这是来自 Couchbase 的 Simon BASLÉ 的一篇博文的交叉发布。你可以在 Twitter(@simonbasle)或 github 上找到他。在 开发者门户 上了解更多关于 Couchbase 和 Couchbase Java SDK 的信息。
Spring Boot 1.4.0 MILESTONE 2 现已发布!这是一个好时机,可以告诉你 Spring Boot 团队成员与 Couchbase Java SDK 团队共同努力,为 Couchbase 在 Spring Boot 中提供一流的集成 :)

在 Spring Boot 1.4.0 中,Couchbase 成为 Spring Boot 生态系统的一等公民!
Spring Boot 现在能够直接识别你的类路径中是否包含 Couchbase SDK。如果包含,它会通过自动配置为你实例化一个 Cluster 和一个 Bucket bean。
Spring Boot 可以读取属性来进一步配置这些核心 SDK 类,甚至包括 CouchbaseEnvironment!
以下引导属性是受支持的
spring.couchbase.bootstrap-hosts
spring.couchbase.bucket.name
spring.couchbase.bucket.password
环境调优(IO 端点、SSL 支持和默认同步 API 超时)通过以下属性暴露
spring.couchbase.env.endpoints.key-value
spring.couchbase.env.endpoints.query
spring.couchbase.env.endpoints.view
spring.couchbase.env.ssl.enabled
spring.couchbase.env.ssl.key-store
spring.couchbase.env.ssl.key-store-password
spring.couchbase.env.timeouts.connect
spring.couchbase.env.timeouts.key-value
spring.couchbase.env.timeouts.query
spring.couchbase.env.timeouts.view
这简直是 ⭐️⭐️⭐️⭐️⭐️ 支持!
警告:请注意,在前一个里程碑版本中,引导属性的前缀是“
spring.*data*.couchbase”,现在已更改为“spring.couchbase”。
Spring Cache 抽象层有一个 Couchbase 2.x 实现,名为 couchbase-spring-cache。
当 Java SDK 和 couchbase-spring-cache 库都存在于类路径中时,Spring Boot 现在会识别这个缓存实现。
这与上一节的介绍非常契合,因为缓存的默认底层存储 Bucket 就是由 Spring Boot 自动配置的 :)
注意:缓存实现已从 Spring Data Couchbase 项目中剥离出来,成为一个独立的项目(在 Couchbase 的 github 仓库中),以便与 Spring Data 分开使用和发布。
提示:不要忘记至少配置
spring.couchbase.bootstrap-hosts属性。
此 CacheManager 实现允许通过自动将键与每个缓存的名称一起添加到 Couchbase 中,将多个缓存的数据存储在同一个 Couchbase 桶中。
CouchbaseCacheManager 将自动重用 Spring Boot 自动配置的 Bucket。只需添加一个属性以声明方式列出缓存名称,相应的缓存就会被预加载
spring.cache.type=couchbase
spring.cache.cache-names=foo,bar
五星级支持,我们说了!
你甚至可以配置它将不同缓存的数据存储在多个桶中。然后可以使用流畅的构建器模式配置缓存(例如,在 CacheManagerCustomizer<CouchbaseCacheManager> 中)。这个 CacheBuilder 还允许你进一步调整缓存,例如设置默认过期时间
@Configuration
public class CouchbaseCacheConfiguration {
private final Cluster cluster;
//inject the Cluster from Boot core Couchbase support
public CouchbaseCacheConfiguration(Cluster cluster) {
this.cluster = cluster;
}
@Bean
public Bucket anotherBucket() {
return this.cluster.openBucket("another", "secret");
}
@Bean
public CacheManagerCustomizer<CouchbaseCacheManager> cmCustomizer() {
return c -> {
c.prepareCache("biz", CacheBuilder
.newInstance(anotherBucket())
.withExpirationInMillis(2000));
};
}
}
此实现可以使用视图来选择性地清除位于同一 Bucket 中的缓存。
最后,它支持在请求时动态创建缓存。要激活此功能,只需省略声明任何缓存名称,并通过相关属性激活 Couchbase 缓存即可
spring.cache.type=couchbase
这将使用 Spring Boot 自动配置的 Bucket 作为所有动态创建缓存的默认桶。
与 @Cacheable 的精彩互动即将到来?
Spring Data Couchbase 2.1.0(Hopper 发行版)包含了一些修改,使与 Spring Boot 的集成变得轻而易举。
首先是常规操作:默认情况下,Spring Boot 将自动配置 Spring Data Couchbase 以使用它创建的 Bucket。这得益于将核心 SDK 配置部分分离到一个 CouchbaseConfigurer 类中,而真正特定于 Spring Data 的部分则位于一个新基类 AbstractCouchbaseDataConfiguration 中。
如果你只使用 Spring Data,你可以继续使用 AbstractCouchbaseConfiguration,它现在既是 CouchbaseConfigurer 也是 AbstractCouchbaseDataConfiguration。
但是,如果你使用 Spring Boot,它将自动配置一个 CouchbaseConfigurer。你始终可以调整自己的 AbstractCouchbaseDataConfiguration 并将配置器注入其中。
2.1.0 版本还包含了一些新功能
touch(刷新文档的过期时间)在读取时(DATACOUCH-59)@CreatedBy 注解,DATACOUCH-91)快去获取那个 ⭐️⭐️⭐️⭐️⭐️ 的里程碑版本吧!
一如既往,欢迎提供反馈(在 Spring Data 问题跟踪器、Spring Boot 问题跟踪器 或 Couchbase 论坛 上)。
编码愉快!