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工程
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
####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连接####
在导入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();
}
}
至此,整合完毕