2012-05-23 132 views
0

我正在使用下面的配置來使用jedis客戶端連接到redis。我想創建OSGi共享池服務,以便將其導出並用於其他包中。請讓我知道如何做到這一點。OSGi Redis共享池配置

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> 
    <property name="maxActive" value="200" /> 
    <property name="maxIdle" value="50" /> 
    <property name="maxWait" value="3000" /> 
    <property name="testOnBorrow" value="${jedis.testOnBorrow}" /> 
</bean> 

<bean id="jedisPool" class="redis.clients.jedis.JedisPool"> 
    <constructor-arg index="0" ref="jedisPoolConfig" /> 
    <constructor-arg index="1" value="${jedis.host}" /> 
    <constructor-arg index="2" value="${jedis.port}" /> 
</bean> 

回答

1

查看API文檔,JedisPool不使用支持接口,因此您需要自行定義,確切定義應用程序需要共享的操作。然後創建一個具體的基類,擴展或封裝您的JedisPool實例並將其導出爲OSGi服務。

根據您在上面的代碼片段中使用的依賴注入API,Spring DM和Blueprint都有簡單的服務導出元素,可以簡化OSGi服務部分的導出,因此您可以專注於接口和支持POJO。