spring整合mongodb环境搭建

技术结构##

spring mvc + spring-data-mongodb

版本与环境

spring-data-commons 1.13.7.RELEASE
spring-data-mongodb 1.10.7.RELEASE
mongo-java-driver 3.4.2
spring 4.3.16.RELEASE

tomcat 7
maven工程

导入jar包


	4.0.0
	com.xiangpeng
	mongodbDemo
	0.0.1-SNAPSHOT
	war

	
		4.3.16.RELEASE
	

	
	
		
		
			org.springframework
			spring-core
			${spring.version}
		
		
			org.springframework
			spring-beans
			${spring.version}
		
		
			org.springframework
			spring-context
			${spring.version}
		
		
		
		
			org.springframework
			spring-web
			${spring.version}
		
		
			org.springframework
			spring-webmvc
			${spring.version}
		
	
		
		
			org.springframework.data
			spring-data-commons
			1.13.7.RELEASE
		
		
			org.springframework.data
			spring-data-mongodb
			1.10.7.RELEASE
		
		
			org.mongodb
			mongo-java-driver
			3.4.2
		

		
		
			org.springframework
			spring-test
			${spring.version}
			test
		

	

	
		
			
			
				org.apache.tomcat.maven
				tomcat7-maven-plugin
				2.2
			
		
	

整合springMVC

####web.xml####




	
	
		DispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:applicationContext.xml
		
		1
	

	
		DispatcherServlet
		/
	

	
	

####配置applicationContext.xml####




	
	
	
	
 

####配置controller####

package com.xiangpeng.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@SuppressWarnings("all")
@RestController
@RequestMapping("app")
public class AppController {

	@RequestMapping(value="goo",method=RequestMethod.GET)
	public String test(){
		return "hello world";
	}
}

到这里可以在maven中输入tomcat7:run跑一遍,确认SpringMVC无误

整合mongodb

####测试mongodb连接####
在导入spring-data-commons,spring-data-mongodb,mongo-java-driver后,mongodb数据库理论上是可以连接的

@Test
public void mongodbGo() {
	// 连接到mongodb服务
	MongoClient mongo = new MongoClient("127.0.0.1", 27017);

	// 根据mongodb数据库名称获取mongodb执行对象
	MongoDatabase db = mongo.getDatabase("mytest");

	// 获取集合对象
	MongoCollection collection = db.getCollection("clo");
	
	// 获取集合中所有值
	FindIterable find = collection.find();
	MongoCursor iterator = find.iterator();
	while(iterator.hasNext()){
		System.out.println(iterator.next());
	}
}

####在xml中配置mongodb####

xml中的配置




	
	
	
	
	
		
	

	
	
	
	
	
		
		
	

properties中的配置

mongo.hostport=127.0.0.1:27017
mongo.connectionsPerHost=8
mongo.threadsAllowedToBlockForConnectionMultiplier=4
mongo.connectTimeout=3000
mongo.maxWaitTime=1500
mongo.socketKeepAlive=true
mongo.socketTimeout=30000
mongo.databaseName=mytest
mongo.username=mytest
mongo.password=123456

至此,spring–data-mongodb整合完毕

测试

####bo类####

package com.xiangpeng.bo;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

// @Document(collection="user") 该实体类指向mytest数据库中的user集合
@Document(collection="user")
public class UserBo {
	//@Id 指定该字段对应mongodb中的_id字段
	@Id
	private String id;
	private String name;
	private String sex;
	private Integer age;
//	(get/set方法省略)
}

####Controller层####

package com.xiangpeng.controller;

import org.bson.Document;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.authentication.UserCredentials;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.xiangpeng.bo.UserBo;
import com.xiangpeng.service.MongoBaseService;

@SuppressWarnings("all")
@RestController
@RequestMapping("app")
public class AppController {

	@Autowired
	private MongoBaseService mongoBaseService;
	
	@RequestMapping(value="go",method=RequestMethod.GET)
	@ResponseBody
	public String mongodbGoTo(){
		UserBo user = new UserBo();
		user.setName("小鸟游六花");
		user.setAge(17);
		user.setSex("女");
		return mongoBaseService.insert(user);
		}
}

####Service,ServiceImpl,Dao层####
省略
####DaoImpl层####

package com.xiangpeng.dao.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Repository;

import com.xiangpeng.bo.UserBo;
import com.xiangpeng.dao.MongoBaseDao;

@Repository("userDaoImpl")
public class MongoBaseDaoImpl implements MongoBaseDao {
	@Autowired
	private MongoTemplate mongoTemplate;
	
	public String insert(UserBo user) {
	// 将一个user实例写入user集合,并将由mongodb数据库生成的id返回
		mongoTemplate.insert(user);
		return user.getId();
	}
}

至此,整合完毕

你可能感兴趣的:(spring整合mongodb环境搭建)