`
zhaoImpulse
  • 浏览: 79498 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用spring托管couchbase

阅读更多

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

spring托管couchbase的方法

 

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

 

couchBase.name=draw
couchBase.server=localhost:8091
couchBase.pwd=123

 

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

 

couchBase.server=localhost:8091,192.168.0.3:8091

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

 

	<bean id="couchbaseConnector" class="com.impulse.couchbase.CouchbaseConnector"
		destroy-method="close">
		<property name="serverAddress">
			<value>${couchBase.server}</value>
		</property>
		<property name="name">
			<value>${couchBase.name}</value>
		</property>
		<property name="pwd">
			<value>${couchBase.pwd}</value>
		</property>
		
	</bean>
	<bean id="couchbaseTemplate" class="com.impulse.couchbase.CouchbaseTemplate">
		<constructor-arg>
			<ref bean="couchbaseConnector" />
		</constructor-arg>
		<!-- <property name="couchbaseConnector" ref="couchbaseConnector" /> -->
	</bean>

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

 

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

 

	<context:annotation-config />
	<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
	<bean id="porpertyLoder"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>classpath:couchbaseDB.properties</value>
		</property>
	</bean>
	<import resource="app_couchbase.xml"/>

 

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

 

public class CouchbaseConnector {
	private String serverAddress;
	private String name;
	private String pwd;

	public CouchbaseConnectionFactory connect() {
		CouchbaseConnectionFactory cf = null;
		try {
			String[] serverNames = serverAddress.split(",");
			ArrayList<URI> serverList = new ArrayList<URI>();
			for (String serverName : serverNames) {
				URI base = null;
				base = URI.create(String.format("http://%s/pools",serverName));
				serverList.add(base);
			}
			cf = new CouchbaseConnectionFactory(
					serverList, name, pwd);
			return cf;
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
	}
	
	public void close(){
		
	}

	public String getServerAddress() {
		return serverAddress;
	}

	public void setServerAddress(String serverAddress) {
		this.serverAddress = serverAddress;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
}

 

再创建CouchbaseTemplate来封装CouchbaseClient的功能

 

public class CouchbaseTemplate extends CouchbaseClient{
	
	public CouchbaseTemplate(CouchbaseConnector couchbaseConnector) throws IOException{
		super(couchbaseConnector.connect());
	}
	
	public void add(String key,Object value){
		this.add(key, 0, value);
	}
	
	//这里可以创建一些别的方法来封装CouchbaseClient

}

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

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

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics