如何访问 spring-data-couchbase 中的存储桶对象?

How to access a bucket object in spring-data-couchbase?

我在我的应用程序中使用 spring-data-couchbase:2.0.0.RC1,但我有一些依赖 Bucket 对象并直接使用它的遗留代码。有没有办法从 spring-data-couchbase 获取 Bucket 对象?我在文档中找到了这个 http://docs.spring.io/spring-data/couchbase/docs/2.0.0.RC1/reference/html/#couchbase.template 但不知道如何在我的应用程序中配置它。

我的 spring 配置对象如下 ...

@Configuration
public class SpringCouchbaseConfig extends AbstractCouchbaseConfiguration {

    @Value("${scheduled.task.couchbase_sync.host}")
    String host;

    @Value("${scheduled.task.couchbase_sync.bucket}")
    String bucket;

    @Override
    protected List<String> getBootstrapHosts() {
        return Arrays.asList(this.host);
    }

    @Override
    protected String getBucketName() {
        return this.bucket;
    }

    @Override
    protected String getBucketPassword() {
        return "";
    }

    @Override
    protected CouchbaseEnvironment getEnvironment() {
        return DefaultCouchbaseEnvironment.builder()
                .connectTimeout(TimeUnit.SECONDS.toMillis(10))
                .computationPoolSize(6)
                .build();
    }


    @Bean(name = "org.springframework.data.couchbase.core.convert.customConversions")
    public CustomConversions customConversions() {
        return new CustomConversions(Collections.emptyList());
    }

}

如果您只配置一个 BucketAbstractCouchbaseConfiguration 将声明一个名为 couchbaseBucket 且类型为 Bucket@Bean,因此您可以在其中自动装配它你需要它:

@Autowired
private Bucket myBucketUsedBySpringData;

如果您有对 CouchbaseTemplate 的引用(例如,也在某处自动装配),您还可以通过调用 getCouchbaseBucket() 轻松获得支持 Bucket