Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 当我使用hectorTemplate操作Cassandra时,如何在SpringMVC中使用不同的键空间?_Spring Mvc_Cassandra - Fatal编程技术网

Spring mvc 当我使用hectorTemplate操作Cassandra时,如何在SpringMVC中使用不同的键空间?

Spring mvc 当我使用hectorTemplate操作Cassandra时,如何在SpringMVC中使用不同的键空间?,spring-mvc,cassandra,Spring Mvc,Cassandra,首先,我为什么要使用不同的键空间? 因为我想编写JUnit测试,但我需要另一个键空间来进行测试。 我正在使用SpringMVC。 我在春天使用自动接线的hectorTemplate <!-- cassandra configuration --> <bean id="cassandraHostConfigurator" class="me.prettyprint.cassandra.service.CassandraHostConfigurator">

首先,我为什么要使用不同的键空间? 因为我想编写JUnit测试,但我需要另一个键空间来进行测试。 我正在使用SpringMVC。 我在春天使用自动接线的hectorTemplate

<!--  cassandra configuration -->
    <bean id="cassandraHostConfigurator" class="me.prettyprint.cassandra.service.CassandraHostConfigurator">
        <constructor-arg value="${cassandra.url}" />
    </bean>

    <bean id="cluster" class="me.prettyprint.cassandra.service.ThriftCluster">
        <constructor-arg value="${cassandra.cluster}" />
        <constructor-arg ref="cassandraHostConfigurator" />
    </bean>

    <bean id="consistencyLevelPolicy" class="me.prettyprint.cassandra.model.ConfigurableConsistencyLevel">
       <property name="defaultReadConsistencyLevel" value="${cassandra.defaultReadConsistencyLevel}"></property>
       <property name="defaultWriteConsistencyLevel" value="${cassandra.defaultWriteConsistencyLevel}"></property>
    </bean>

    <bean id="keyspace" class="me.prettyprint.hector.api.factory.HFactory" factory-method="createKeyspace">
        <constructor-arg value="${cassandra.keyspace}" />
        <constructor-arg ref="cluster" />
        <constructor-arg ref="consistencyLevelPolicy" />
    </bean>

    <bean id="hectorTemplate" class="me.prettyprint.cassandra.service.spring.HectorTemplateImpl">
        <property name="cluster" ref="cluster" />
        <property name="keyspace" ref="keyspace" />
        <property name="replicationStrategyClass" value="org.apache.cassandra.locator.SimpleStrategy" />
        <property name="replicationFactor" value="1" />
    </bean>

那么我应该怎么添加另一个键空间呢? 谢谢你的帮助




对于JUnit测试,您应该使用相同的键空间并使用嵌入式Cassandra。选中。没有理由仅仅为了测试而创建另一个键空间。

谢谢你的回复。但是我不知道如何区分java代码中的两个键空间,有什么判断吗?因为我需要在服务层测试方法,DAO方法不能更改。在DAO的测试代码中,让我们说MyDaoTest,您应该注入一个Hector集群和键空间,该集群和键空间由Cassandra单元引导。
<!-- Keyspace1 -->

 <bean id="keyspace1" class="me.prettyprint.hector.api.factory.HFactory" factory-method="createKeyspace">
        <constructor-arg value="${cassandra.keyspace1}" />
        <constructor-arg ref="cluster" />
        <constructor-arg ref="consistencyLevelPolicy" />
    </bean>

    <bean id="hectorTemplate1" class="me.prettyprint.cassandra.service.spring.HectorTemplateImpl">
        <property name="cluster" ref="cluster" />
        <property name="keyspace" ref="keyspace1" />
        <property name="replicationStrategyClass" value="org.apache.cassandra.locator.SimpleStrategy" />
        <property name="replicationFactor" value="1" />
    </bean>


<!-- Keyspace2 -->

 <bean id="keyspace2" class="me.prettyprint.hector.api.factory.HFactory" factory-method="createKeyspace">
        <constructor-arg value="${cassandra.keyspace2}" />
        <constructor-arg ref="cluster" />
        <constructor-arg ref="consistencyLevelPolicy" />
    </bean>

    <bean id="hectorTemplate2" class="me.prettyprint.cassandra.service.spring.HectorTemplateImpl">
        <property name="cluster" ref="cluster" />
        <property name="keyspace" ref="keyspace2" />
        <property name="replicationStrategyClass" value="org.apache.cassandra.locator.SimpleStrategy" />
        <property name="replicationFactor" value="1" />
    </bean>