用spring托管couchbase

couchbase是一个很强大的nosql数据库,但现在几乎没有一个框架语言支持它,所以在javaweb中不能不能使用hibernate等orm框架来管理它,只能我们自己管理。

spring托管couchbase的方法

 

先创建一个couchbaseDB.properties文件来作为数据库的配置。

 

Java代码   收藏代码
  1. couchBase.name=draw  
  2. couchBase.server=localhost:8091  
  3. couchBase.pwd=123  

 

 其中couchBase.server可能有很多个,如果有多个,那么多个值用“,”分隔开,比如

 

Java代码   收藏代码
  1. couchBase.server=localhost:8091,192.168.0.3:8091  

然后创建app_couchbase.xml文件来配置couchbase

 

Xml代码   收藏代码
  1. <bean id="couchbaseConnector" class="com.impulse.couchbase.CouchbaseConnector"  
  2.     destroy-method="close">  
  3.     <property name="serverAddress">  
  4.         <value>${couchBase.server}</value>  
  5.     </property>  
  6.     <property name="name">  
  7.         <value>${couchBase.name}</value>  
  8.     </property>  
  9.     <property name="pwd">  
  10.         <value>${couchBase.pwd}</value>  
  11.     </property>  
  12.       
  13. </bean>  
  14. <bean id="couchbaseTemplate" class="com.impulse.couchbase.CouchbaseTemplate">  
  15.     <constructor-arg>  
  16.         <ref bean="couchbaseConnector" />  
  17.     </constructor-arg>  
  18.     <!-- <property name="couchbaseConnector" ref="couchbaseConnector" /> -->  
  19. </bean>  

  以后操作couchbase就使用类com.impulse.couchbase.CouchbaseTemplate

 

然后创建app_common.xml用来做spring的基本配置

 

Xml代码   收藏代码
  1. <context:annotation-config />  
  2. <aop:aspectj-autoproxy></aop:aspectj-autoproxy>  
  3. <bean id="porpertyLoder"  
  4.     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  5.     <property name="location">  
  6.         <value>classpath:couchbaseDB.properties</value>  
  7.     </property>  
  8. </bean>  
  9. <import resource="app_couchbase.xml"/>  

 

再创建类文件CouchbaseConnector来用来创建对couchbase的连接

 

Java代码   收藏代码
  1. public class CouchbaseConnector {  
  2.     private String serverAddress;  
  3.     private String name;  
  4.     private String pwd;  
  5.   
  6.     public CouchbaseConnectionFactory connect() {  
  7.         CouchbaseConnectionFactory cf = null;  
  8.         try {  
  9.             String[] serverNames = serverAddress.split(",");  
  10.             ArrayList<URI> serverList = new ArrayList<URI>();  
  11.             for (String serverName : serverNames) {  
  12.                 URI base = null;  
  13.                 base = URI.create(String.format("http://%s/pools",serverName));  
  14.                 serverList.add(base);  
  15.             }  
  16.             cf = new CouchbaseConnectionFactory(  
  17.                     serverList, name, pwd);  
  18.             return cf;  
  19.         } catch (Exception e) {  
  20.             e.printStackTrace();  
  21.             return null;  
  22.         }  
  23.     }  
  24.       
  25.     public void close(){  
  26.           
  27.     }  
  28.   
  29.     public String getServerAddress() {  
  30.         return serverAddress;  
  31.     }  
  32.   
  33.     public void setServerAddress(String serverAddress) {  
  34.         this.serverAddress = serverAddress;  
  35.     }  
  36.   
  37.     public String getName() {  
  38.         return name;  
  39.     }  
  40.   
  41.     public void setName(String name) {  
  42.         this.name = name;  
  43.     }  
  44.   
  45.     public String getPwd() {  
  46.         return pwd;  
  47.     }  
  48.   
  49.     public void setPwd(String pwd) {  
  50.         this.pwd = pwd;  
  51.     }  
  52. }  

 

再创建CouchbaseTemplate来封装CouchbaseClient的功能

 

Java代码   收藏代码
  1. public class CouchbaseTemplate extends CouchbaseClient{  
  2.       
  3.     public CouchbaseTemplate(CouchbaseConnector couchbaseConnector) throws IOException{  
  4.         super(couchbaseConnector.connect());  
  5.     }  
  6.       
  7.     public void add(String key,Object value){  
  8.         this.add(key, 0, value);  
  9.     }  
  10.       
  11.     //这里可以创建一些别的方法来封装CouchbaseClient  
  12.   
  13. }  

  这样以后直接使用CouchbaseTemplate的实例就可以了。

由于spring没有自己的事务管理,所以我们还要为它单独写一个事务。

你可能感兴趣的:(用spring托管couchbase)