2015-11-11 147 views
1

在Couchbase文檔中,給出了下面的示例來配置環境。有多個桶可以做什麼?如何使用基於註釋的配置在Couchbase中配置多個桶?

@Configuration 
 
public class Config extends AbstractCouchbaseConfiguration { 
 

 
    @Override 
 
    protected List<String> getBootstrapHosts() { 
 
     return Collections.singletonList("127.0.0.1"); 
 
    } 
 

 
    @Override 
 
    protected String getBucketName() { 
 
     return "beer-sample"; 
 
    } 
 

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

回答

0

對於2.0.x分支多桶,但目前的工作方式是,你必須實例化一個第二Bucket豆和相關CouchbaseTemplate(這是最難的部分):

//we want all User objects to be stored in a second bucket 
//let's define the bucket reference... 
@Bean 
public Bucket userBucket() { 
    return couchbaseCluster().openBucket("users", ""); 
} 

//... then the template (inspired by couchbaseTemplate() method)... 
@Bean 
public CouchbaseTemplate userTemplate() { 
    CouchbaseTemplate template = new CouchbaseTemplate(
    couchbaseClusterInfo(), //reuse the default bean 
    userBucket(), //the bucket is non-default 
    mappingCouchbaseConverter(), translationService() //default beans here as well 
); 
    template.setDefaultConsistency(getDefaultConsistency()); 
    return template; 
} 

之後,您可能還需要一些存儲庫使用第二個模板(和存儲桶)。目前還有一個實現(RepositoryOperationsMapping),但它可能會稍微改變,直到即將到來的2.0.0-RC,所以我不會在那裏詳細討論。

+0

感謝您的回覆。爲什麼我需要一個Bucket bean,如果我已經有了一個模板?模板的目的不是封裝Bucket幷包裝它的操作嗎?此外,我可以通過getCouchbaseBucket方法獲取Bucket - [api](http://docs.spring.io/spring-data/couchbase/docs/2.0.0.M1/api/org/springframework/data/couchbase/core /CouchbaseTemplate.html#getCouchbaseBucket--) - 如果我需要它,除非你提到的映射有任何特定的需要有一個Bucket bean。再次感謝 –

+0

那麼如果你想存儲到不同的桶中,模板提供了對桶操作的抽象,但它依賴於桶,所以沒有辦法創建對一個桶的引用 –

相關問題