Как настроить несколько источников данных couchbase, используя springboot-data-couchbase? - PullRequest
1 голос
/ 13 июня 2019

Я пытаюсь настроить несколько источников данных couchbase, используя springboot-data-couchbase.

Это способ, которым я пытался подключить два источника на базе couchbase с двумя репозиториями.

@Configuration
@EnableCouchbaseRepositories("com.xyz.abc")
public class AbcDatasource extends AbstractCouchbaseConfiguration {
 @Override
    protected List<String> getBootstrapHosts() {
        return Collections.singletonList("ip_address_of_couchbase");
    }
   //bucket_name
    @Override
    protected String getBucketName() {
        return "bucket_name";
    }
   //password
    @Override
    protected String getBucketPassword() {
        return "user_password";
    }
@Override
@Bean(destroyMethod = "disconnect", name = "COUCHBASE_CLUSTER_2")
public Cluster couchbaseCluster() throws Exception {
    return CouchbaseCluster.create(couchbaseEnvironment(), "ip_address_of_couchbase");
}

@Bean( name = "BUCKET2")
public Bucket bucket2() throws Exception {
    return this.couchbaseCluster().openBucket("bucket2", "somepassword");

}

@Bean( name = "BUCKET2_TEMPLATE")
public CouchbaseTemplate newTemplateForBucket2() throws Exception {
    CouchbaseTemplate template = new CouchbaseTemplate(
            couchbaseClusterInfo(), //reuse the default bean
            bucket2(), //the bucket is non-default
            mappingCouchbaseConverter(), translationService() 
    );
    template.setDefaultConsistency(getDefaultConsistency());
    return template;
}

@Override
public void configureRepositoryOperationsMapping(RepositoryOperationsMapping baseMapping) {
        baseMapping 
                .mapEntity(SomeDAOUsedInSomeRepository.class, newTemplateForBucket2());
    }
}
similarly: 
@Configuration
@EnableCouchbaseRepositories("com.xyz.mln")
public class MlnDatasource extends AbstractCouchbaseConfiguration {...}

Теперь проблема в том, что не существует прямого способа указать источник данных на основе пространства имен путем присоединения различных bean-компонентов к этим конфигурациям, как в springdata-jpa, поскольку springdata-jpa поддерживает эту функцию с помощью entity-manager-factory-ref иaction-manager -REF.

Due to which only one configuration is being picked whoever comes first.

Any suggestion is greatly appreciated.

Смежный вопрос: Использование Spring Data Couchbase для подключения к различным кластерам Couchbase

...