如何在spring-data-couchbase中访问bucket对象?

时间:2016-01-12 13:11:07

标签: spring couchbase 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,但无法弄清楚如何在我的应用中配置它。

我的春季配置对象如下......

@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());
    }

}

1 个答案:

答案 0 :(得分:1)

如果您只配置一个Bucket,则AbstractCouchbaseConfiguration会声明@Bean couchbaseBucket类型Bucket,因此您可以将其自动装配到您需要的位置它:

@Autowired
private Bucket myBucketUsedBySpringData;

如果你有CouchbaseTemplate的引用(例如,也可以在某处自动连接),你也可以通过调用Bucket来轻松获得支持getCouchbaseBucket()