spring-db-mongo配置

搭建一个基于spring的mongodb处理框架,涉及到主要的类及文件有:

  1. UserPopup实体类
  2. UserPopupReadConverter、UserPopupWriteConverter 转换类
  3. spring-mongo-config.xml 容器
  4. mongo.properties 数据库配置文件

说明:

1、UserPopup实体类

 

package com.gemantic.analyse.mongodb.model;

import java.io.Serializable;


@Document(collection="userPopup")
public class UserPopup implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5660357837306426368L;
	
	public UserPopup(){
	}
	
	public UserPopup(String userCode,Long popupId,Long publishAt,Long orgType,Long createAt,Long updateAt){
		this.userCode = userCode;
		this.popupId = popupId;
		this.publishAt = publishAt;
		this.orgType = orgType;
		this.createAt = createAt;
		this.updateAt = updateAt;
	}
	
	public UserPopup(ObjectId id,String userCode,Long popupId,Long publishAt,Long orgType,Long createAt,Long updateAt){
		this.id = id;
		this.userCode = userCode;
		this.popupId = popupId;
		this.publishAt = publishAt;
		this.orgType = orgType;
		this.createAt = createAt;
		this.updateAt = updateAt;
	}
	@Id
	private ObjectId id;

	/**
	 * 客户端登陆用户名
	 * 
	 * 如果是系统公共信息设置为system,否则设置为登陆帐号
	 */
	@Field
	private String userCode;

	/**
	 * meeting.popup表主键
	 */
	@Field
	private Long popupId;

	/**
	 * 发布时间
	 */
	@Field
	private Long publishAt;

	/**
	 * 终端类型
	 * 
	 * 0-新华08机构版,1-CCTV证券频道
	 */
	@Field
	private Long orgType;
	@Field
	private Long createAt;
	@Field
	private Long updateAt;

	public ObjectId getId() {
		return id;
	}

	public void setId(ObjectId id) {
		this.id = id;
	}

	public String getUserCode() {
		return userCode;
	}

	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}

	public Long getPopupId() {
		return popupId;
	}

	public void setPopupId(Long popupId) {
		this.popupId = popupId;
	}

	public Long getPublishAt() {
		return publishAt;
	}

	public void setPublishAt(Long publishAt) {
		this.publishAt = publishAt;
	}

	public Long getOrgType() {
		return orgType;
	}

	public void setOrgType(Long orgType) {
		this.orgType = orgType;
	}

	public Long getCreateAt() {
		return createAt;
	}

	public void setCreateAt(Long createAt) {
		this.createAt = createAt;
	}

	public Long getUpdateAt() {
		return updateAt;
	}

	public void setUpdateAt(Long updateAt) {
		this.updateAt = updateAt;
	}

	public String toString() {
		return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
	}
}

 

  •  关注注解的含义
  • 数据类型:String、Long,针对数据库中的字符和数值

2、UserPopupReadConverter、UserPopupWriteConverter 

      目的是为了在java object到db中collection中的字段名称进行转换工作。

/**
package com.gemantic.analyse.mongodb.model.converter;

import org.bson.types.ObjectId;

/**
 * @author wangkq
 * 
 */
public class UserPopupReadConverter implements Converter<DBObject, UserPopup> {
	public UserPopup convert(DBObject source) {
		UserPopup userPopup = new UserPopup((ObjectId) source.get("_id"),
				(String) source.get("user_code"),
				(Long) source.get("popup_id"),
				(Long) source.get("publish_at"),
				(Long) source.get("org_type"),
				(Long) source.get("create_at"),
				(Long) source.get("update_at"));
		return userPopup;
	}
}

 

/**
package com.gemantic.analyse.mongodb.model.converter;

import org.springframework.core.convert.converter.Converter;

/**
 * @author wangkq
 *
 */
public class UserPopupWriteConverter implements Converter<UserPopup, DBObject> {
	public DBObject convert(UserPopup source) {
	    DBObject dbo = new BasicDBObject();
	    dbo.put("user_code", source.getUserCode());
	    dbo.put("popup_id", source.getPopupId());
	    dbo.put("publish_at",source.getPublishAt());
	    dbo.put("org_type", source.getOrgType());
	    dbo.put("create_at", source.getCreateAt());
	    dbo.put("update_at", source.getUpdateAt());
	    return dbo;
	  }
}

 

3、spring-mongo-config.xml 容器

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mongo="http://www.springframework.org/schema/data/mongo"
	xsi:schemaLocation="http://www.springframework.org/schema/context 
		  http://www.springframework.org/schema/context/spring-context-3.0.xsd 
          http://www.springframework.org/schema/data/mongo 
          http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
          
	<context:component-scan base-package="com.gemantic.analyse.mongodb" />
	<context:property-placeholder
		location="classpath*:META-INF/mongodb/mongo.properties" />
        <!--定义一个工厂,并在其中初始化服务器地址、端口号、数据库名称等信息-->
	<mongo:db-factory id="mongoDbFactory"
                  host="${mongo.host}"
                  port="${mongo.port}"
                  dbname="${mongo.dbname}"/>

	<!-- by default look for a Mongo object named 'mongo' - default name used for the converter is 'mappingConverter' -->
	<!-- 关于Converter的配置 -->
	<mongo:mapping-converter>
		<mongo:custom-converters>
                        <!--定义从数据库中读记录过程中的converter处理类-->
			<mongo:converter ref="readConverter" />
			<mongo:converter>
                                <!--定义应用写入数据库过程中的converter处理类-->
				<bean class="com.gemantic.analyse.mongodb.model.converter.UserPopupWriteConverter" />
			</mongo:converter>
		</mongo:custom-converters>
	</mongo:mapping-converter>
	<bean id="readConverter"
	class="com.gemantic.analyse.mongodb.model.converter.UserPopupReadConverter" />
	<!--定义模板,并实例化其中的成员变量-->
	<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
		<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
	<constructor-arg name="mongoConverter" ref="mappingConverter" />
	</bean>
	<!--定义一个业务manager,并实例化其中mongoTemplate成员变量。业务以后要操作数据库,则都从mongoManager这个实例进行处理-->
	<bean id="mongoManager" class="com.gemantic.analyse.mongodb.util.MongoManager">
		<property name="mongoTemplate">
			<ref bean="mongoTemplate"/>
		</property>
	</bean>
	
</beans>

 

4、mongo.properties 数据库配置文件

mongo.host=127.0.0.1
mongo.port=27017
mongo.dbname=wkqDB
mongo.username=root
mongo.password=root
mongo.connectionPperHost=10
mongo.threadsAllowedToBlockForConnectionMultiplier=4
mongo.connectTimeout=5000
mongo.maxWaitTime=5000
mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
mongo.socketTimeout=500000
mongo.slaveOk=true
mongo.writeNumber=10
mongo.writeTimeout=0
mongo.writeFsync=true
mongo.connections=22
mongo.connectionThreads=22
mongo.connectionsPerHost=10
mongo.threadsMultiplier=4

     这里面的配置信息比较全面,涉及到单机、集群、时间等配置,以后慢慢研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值