2014-01-17 54 views
0

我需要的用戶數memcached的服務器在我的應用程序。春天許多mamcached實施

到現在我只使用一個配置:

<bean id="memcachedClient" class="net.spy.memcached.spring.MemcachedClientFactoryBean" scope="singleton"> 
    <property name="servers" value="${app.memcached.url}"/> 
    <property name="protocol" value="BINARY"/> 
    <property name="transcoder"> 
     <bean class="net.spy.memcached.transcoders.SerializingTranscoder"> 
      <property name="compressionThreshold" value="1024"/> 
     </bean> 
    </property> 
    <property name="opTimeout" value="1000"/> 
    <property name="timeoutExceptionThreshold" value="1998"/> 
    <property name="locatorType" value="CONSISTENT"/> 
    <property name="failureMode" value="Redistribute"/> 
    <property name="useNagleAlgorithm" value="false"/> 
</bean> 

當我想用兩臺服務器,一個只想做補充:

<bean id="memcachedClient" class="net.spy.memcached.spring.MemcachedClientFactoryBean" scope="singleton"> 
    <property name="servers" value="${app.memcached.url}"/> 
    <property name="protocol" value="BINARY"/> 
    <property name="transcoder"> 
     <bean class="net.spy.memcached.transcoders.SerializingTranscoder"> 
      <property name="compressionThreshold" value="1024"/> 
     </bean> 
    </property> 
    <property name="opTimeout" value="1000"/> 
    <property name="timeoutExceptionThreshold" value="1998"/> 
    <property name="locatorType" value="CONSISTENT"/> 
    <property name="failureMode" value="Redistribute"/> 
    <property name="useNagleAlgorithm" value="false"/> 
</bean> 

<bean id="memcachedAs" class="net.spy.memcached.spring.MemcachedClientFactoryBean" scope="singleton"> 
    <property name="servers" value="${app.memcached.url.as}"/> 
    <property name="protocol" value="BINARY"/> 
    <property name="transcoder"> 
     <bean class="net.spy.memcached.transcoders.SerializingTranscoder"> 
      <property name="compressionThreshold" value="1024"/> 
     </bean> 
    </property> 
    <property name="opTimeout" value="1000"/> 
    <property name="timeoutExceptionThreshold" value="1998"/> 
    <property name="locatorType" value="CONSISTENT"/> 
    <property name="failureMode" value="Redistribute"/> 
    <property name="useNagleAlgorithm" value="false"/> 
</bean> 

但後來我得到錯誤:

is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [net.spy.memcached.MemcachedClient] is defined: expected single matching bean but found 

你能幫助我,如何實現多配置?

回答

0

我假設你有一個注入目標一樣

@Autowired 
private MemcachedClient client; 

Spring會試圖通過它的類型來解決這個bean。但是你的上下文中有兩種類型的bean,所以Spring不知道選擇哪一種。相反,你可以通過ID注入豆

@Resource(name="memcachedAs") 
private MemcachedClient client; 

甚至

@Autowired 
@Qualifier("memcachedAs") 
private MemcachedClient client;