首页 > 学院 > 开发设计 > 正文

spring data MongoRepository浅谈应用

2019-11-08 02:41:20
字体:
来源:转载
供稿:网友
MongoRepository 是sPRing-data 里面针对MongoDB整合提供的一个简化与数据库交互,spring去除dao层的代码编写。spring-data包还提供了针对Hadoop、solr。当然对应的接口名字也是不同的。spring Data能自动创建实体dao的实现类和自定义查询,不再需要我们自己去实现了。公司项目是一个大型分布式 互联网接口服务。整改日志操作,转移接口压力。生产环境每天大概将近4-7G的日志文件。将日志不是重要性数据转移到MongoDB,来分减压力。在整合过程中发现了spring -data MongoRepository接口目录结构
MonitorRepository 继承MongoRepository接口org.springframework.data.mongodb.repository.MongoRepository<TSerializable>
public interface MonitorRepository extends MongoRepository<MonitorLog, String>{	}实体类MonitorLog
package com.sinosoft.ebusiness.mongo.model;import java.util.Date;import org.springframework.data.annotation.Id;import org.springframework.data.mongodb.core.index.Indexed;import org.springframework.data.mongodb.core.mapping.Document;/** * POJO类MonitorLog  */@Document()//public class MonitorLog implements java.io.Serializable {	private static final long serialVersionUID = 1L;	/** 属性序列号(SerialNo) */	@Id	private String serialNo;	/** 属性用户名(UserName) */	private String userName;	/** 属性ip地址(IPADD) */	private String ipadd;	/** 属性日志时间(LogTime) */	private Date logTime;	/** 属性应用系统(AppName) */	private String appName;		/**属性交易码(TRANSRNO)*/	private String transrNo;		/** 属性日志描述(Content) */	private String content;	/** 属性备注(Remark) */	@Indexed	private String remark;	/** 日志级别*/	private String logGrade;		public MonitorLog(String serialNo,String userName,String ipadd,			Date logTime,String appName,String transNo,String content,String remark,String logGrade){		this.appName =appName;		this.content = content;		this.ipadd = ipadd;		this.logGrade = logGrade;		this.logTime = logTime;		this.remark = remark;		this.transrNo = transNo;		this.userName = userName;	}	/**	 * 类Gemonitorbusinesslog的默认构造方法	 */	public MonitorLog() {		this.logTime = new Date();	}	/**	 * 属性序列号(SerialNo)的getter方法	 */	public String getSerialNo() {		return this.serialNo;	}	/**	 * 属性序列号(SerialNo)的setter方法	 */	public void setSerialNo(String serialNo) {		this.serialNo = serialNo;	}	/**	 * 属性用户名(UserName)的getter方法	 */	public String getUserName() {		return this.userName;	}	/**	 * 属性用户名(UserName)的setter方法	 */	public void setUserName(String userName) {		this.userName = userName;	}	/**	 * 属性IP地址(IPADD)的getter方法	 */	public String getIpadd() {		return this.ipadd;	}	/**	 * 属性IP地址(IPADD)的setter方法	 */	public void setIpadd(String ipadd) {		this.ipadd = ipadd;	}	/**	 * 属性日志时间(LogTime)的getter方法	 */	public Date getLogTime() {		return this.logTime;	}	/**	 * 属性日志时间(LogTime)的setter方法	 */	public void setLogTime(Date logTime) {		this.logTime = logTime;	}	/**	 * 属性应用系统(AppName)的getter方法	 */	public String getAppName() {		return this.appName;	}	/**	 * 属性应用系统(AppName)的setter方法	 */	public void setAppName(String appName) {		this.appName = appName;	}		/**	 * 属性交易码(TRANSRNO)的getter方法	 */	public String getTransrNo() {		return transrNo;	}	/**	 * 属性交易码(TRANSRNO)的setter方法	 */	public void setTransrNo(String transrNo) {		this.transrNo = transrNo;	}	/**	 * 属性日志描述(Content)的getter方法	 */	public String getContent() {		return this.content;	}	/**	 * 属性日志描述(Content)的setter方法	 */	public void setContent(String content) {		this.content = content;	}	/**	 * 属性备注(Remark)的getter方法	 */	public String getRemark() {		return this.remark;	}	/**	 * 属性备注(Remark)的setter方法	 */	public void setRemark(String remark) {		this.remark = remark;	}	public String getLogGrade() {		return logGrade;	}	public void setLogGrade(String logGrade) {		this.logGrade = logGrade;	}	@Override	public String toString() {		return "MonitorBusinessLog [serialNo=" + serialNo + ", userName="				+ userName + ", ipadd=" + ipadd + ", logTime=" + logTime				+ ", appName=" + appName + ", transrNo=" + transrNo				+ ", content=" + content + ", remark=" + remark + ", logGrade="				+ logGrade + "]";	}	}未定义实现类 只是定义了一下接口 测试用例
package com.sinosoft.ebusiness.basic;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.springframework.context.ConfigurableapplicationContext;import org.springframework.context.support.FileSystemxmlApplicationContext;import org.springframework.data.domain.Page;import org.springframework.data.mongodb.core.MongoTemplate;import com.sinosoft.ebusiness.basic.model.MonitorBusinessLog;import com.sinosoft.ebusiness.mongo.basic.MonitorRepository;import com.sinosoft.ebusiness.mongo.model.MonitorLog;import com.sinosoft.ebusiness.mongo.service.face.MonitorBasicService;public class TestServer {	public static void main(String[] args) {				String[] configFiles = { "classpath*:spring/applicationContext-web.xml",				"classpath*:spring/applicationContext-mongo.xml",				"classpath*:spring/applicationContext-basic.xml",				"classpath*:spring/applicationContext-jms.xml",				"classpath*:spring/applicationContext-hibernate.xml"				};		ConfigurableApplicationContext appContext;		appContext = new FileSystemXmlApplicationContext(configFiles);		final SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:SSS");   		//MonitorBasicService ud = (MonitorBasicService) appContext.getBean("monitorBasicService");		MonitorRepository monitorRepository = (MonitorRepository) appContext.getBean("monitorRepository");		//MongoTemplate mongo = (MongoTemplate) appContext.getBean("mongoTemplate");				long s =  System.currentTimeMillis();		System.err.println(monitorRepository.findAll().size()+"============monitorRepository.count()");		System.out.println("毫秒:"+(System.currentTimeMillis() - s));	}}单纯利用spring-data MongoRepository 接口 实现文件的查找存储具体实现类可以在百度一下。我这里只是做了一个简单书写记录具体技术资料可以查看一下 spring-data技术文档点击打开链接 
上一篇:hdu 1711

下一篇:poj 2406

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表