spring-db-mongo配置
搭建一个基于spring的mongodb处理框架,涉及到主要的类及文件有:[*]UserPopup实体类
[*]UserPopupReadConverter、UserPopupWriteConverter 转换类
[*]spring-mongo-config.xml 容器
[*]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
这里面的配置信息比较全面,涉及到单机、集群、时间等配置,以后慢慢研究。
页:
[1]