文档章节

spring MVC 整合mongodb

浅夏
 浅夏
发布于 2014/03/13 18:03
字数 1031
阅读 31534
收藏 24

Spring Mongodb 

目录 
1 SPRING整合MONGODB 1 
1.1 环境准备 1 
1.2 包依赖 1 
1.3 配置 2 
2 案列 5 
2.1 SPRING MVC整合MONGODB代码案例 5 

1 Spring整合Mongodb 
1.1 环境准备 
1. mongodb官网 http://www.mongodb.org/,下载mongodb安装包和mongodb的java驱动包。 
mongodb安装包(下载地址http://www.mongodb.org/downloads)。Mongodb的安装和使用可见mongodb权威指南。 
mongodb驱动包(下载地址https://github.com/mongodb/mongo-java-driver/downloads) 
2. Spring下载中心(http://www.springsource.org/download/community)下载spring,spring-data-mongodb,spring-data-commons包。 

1.2 包依赖 
项目所需依赖包如下: 
Mongodb驱动包: 
        mongo-2.8.0.jar 
spring包: 
        aopalliance-1.0.jar 
        commons-logging-1.1.jar 
        org.springframework.aop-3.1.RELEASE.jar 
        org.springframework.asm-3.1.RELEASE.jar 
        org.springframework.beans-3.1.RELEASE.jar 
        org.springframework.context-3.1.RELEASE.jar 
        org.springframework.context.support-3.1.RELEASE.jar 
        org.springframework.core-3.1.RELEASE.jar 
        org.springframework.expression-3.1.RELEASE.jar 
        org.springframework.transaction-3.1.RELEASE.jar 
        org.springframework.web-3.1.RELEASE.jar 
        org.springframework.web.servlet-3.1.RELEASE.jar 
        log4j-1.2.16.jar 
        slf4j-log4j12-1.6.4.jar 
        slf4j-api-1.6.4.jar 
Spring Data Mongodb包: 
        spring-data-mongodb-1.1.0.M2.jar 
Spring Data Commons包: 
        spring-data-commons-core-1.4.0.M1.jar 


 


1.3 配置 

(1)配置Web.xml 

Java代码  收藏代码

<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  <display-name>TestSpringMongodb</display-name>  
  
<!— spring mvc dispatcher servlet -->  
   <servlet>  
    <servlet-name>spring</servlet-name>  
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>spring</servlet-name>  
    <url-pattern>/</url-pattern>  
  </servlet-mapping>  
      
  <listener>  
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>  
      
  <welcome-file-list>  
    <welcome-file>index.jsp</welcome-file>  
  </welcome-file-list>  
    
</web-app>
    注意:url-pattern的配置为‘/’。 

    (2)配置applicationContext.xml 

Java代码  收藏代码

  1. <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:p="http://www.springframework.org/schema/p"  
        xmlns:context="http://www.springframework.org/schema/context"  
        xmlns:mvc="http://www.springframework.org/schema/mvc"  
        xsi:schemaLocation="http://www.springframework.org/schema/mvc   
            http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
          
        <!-- Activates various annotations to be detected in bean classes -->  
        <context:annotation-config />  
          
        <!-- Scans the classpath for annotated components that will be auto-registered as Spring beans.For example @Controller and @Service . Make sure to set the correct base-package-->  
        <context:component-scan base-package="bgi.contrl" />  
        <context:component-scan base-package="bgi.service" />  
          
        <!-- Configures the annotation-driven Spring MVC Controller programming model.Note that, with Spring 3.0, this tag works in Servlet MVC only!  -->  
        <mvc:annotation-driven />   
          
        <!-- Loads MongoDB configuraton -->  
        <import resource="mongo-config.xml"/>   
                  
    </beans>



(3)配置mongo-config.xml 

Java代码  收藏代码

  1. <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
        xmlns:p="http://www.springframework.org/schema/p"   
        xmlns:mongo="http://www.springframework.org/schema/data/mongo"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans   
                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
                http://www.springframework.org/schema/data/mongo  
                http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">  
          
        <!-- Default bean name is 'mongo' -->  
        <mongo:mongo host="localhost" port="27017"/>  
          
        <!-- Offers convenience methods and automatic mapping between MongoDB JSON documents and your domain classes. -->  
        <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">  
                <constructor-arg ref="mongo"/>  
                <constructor-arg name="databaseName" value="test"/>  
        </bean>  
          
    </beans>



注意:官方文档和案例配置都是旧版本的配置案例,spring-data-mongo从1.0.0.M1到1.0.0.M3的版本叫做Spring Data Document。1.0.0.M4开始更名为Spring Data MongoDB 1.0.0 M4,不过官网并没有特别说明,乍一看有点莫名其妙,尤其是MongoTemplate从org.springframework.data.document.mongod移动到org.springframework.data.mongodb.core,官网的HelloWorldExample却还是用org.springframework.data.document.mongodb做配置案例。多少会导致使用时的误导。 

(4)配置spring-servlet.xml 

Java代码  收藏代码

  1. <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:p="http://www.springframework.org/schema/p"   
        xsi:schemaLocation="http://www.springframework.org/schema/beans   
                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
          
        <!-- Declare a view resolver -->  
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"   
                p:prefix="/" p:suffix=".jsp" />  
      
    </beans>



注意:spring-servlet.xml的命名是根据web.xml中配置spring DispatcherServlet的名字 (<servlet-name>spring</servlet-name>)加上-servlet命名的。 

2 案列 
2.1 Spring mvc整合mongodb代码案例 

(1),control层 

Java代码  收藏代码

package bgi.contrl;  
  
import java.util.logging.Logger;  
  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.servlet.ModelAndView;  
  
import bgi.pojo.User;  
import bgi.service.UserService;  
  
  
@Controller  
@RequestMapping("/user")  
public class UserCtrl {  
      
      
    private static Logger logger = Logger.getLogger(UserCtrl.class.getName());  
      
    @Autowired  
    UserService userService;  
      
    @RequestMapping("/index")  
    public ModelAndView index(){  
        ModelAndView mav = new ModelAndView("/user/index");  
        return mav;  
    }  
      
    @RequestMapping("/save")  
    public ModelAndView saveUser(User user){  
          
        ModelAndView mav = new ModelAndView("/user/index");  
          
        logger.info("save:"+user);  
          
        userService.saveUser(user);  
          
        return mav;  
    }  
      
    @RequestMapping("/find")  
    public ModelAndView findUser(User user){  
          
        ModelAndView mav = new ModelAndView("/user/index");  
          
        user = userService.findUserByName(user.getName());  
          
        logger.info("find:"+user);  
          
        return mav;  
    }  
      
  
}  
(2),service层 
Java代码  
package bgi.service;  
  
  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.data.mongodb.core.MongoTemplate;  
import org.springframework.data.mongodb.core.query.Criteria;  
import org.springframework.data.mongodb.core.query.Query;  
import org.springframework.stereotype.Service;  
  
import bgi.pojo.User;  
  
  
@Service   
public class UserService {  
      
    private static String USER_COLLECTION = "user";  
  
    @Autowired  
    MongoTemplate mongoTemplate;  
      
    /** 
     *  
     * @param user 
     */  
    public void saveUser(User user){  
          
        mongoTemplate.save(user, USER_COLLECTION);  
          
    }  
      
    /** 
     *  
     * @param name 
     * @return  
     */  
    public User findUserByName(String name){  
          
        return mongoTemplate.findOne(new Query(Criteria.where("name").is(name)), User.class, USER_COLLECTION);  
          
    }  
      
}

Java代码  收藏代码

package bgi.pojo;  
  
import java.io.Serializable;  
  
import org.springframework.data.annotation.Id;  
  
  
public class User implements Serializable{  
  
  
    private static final long serialVersionUID = 1L;  
      
    @Id  
    String uid;  
    String name;  
    int age;  
      
      
    public String getUid() {  
        return uid;  
    }  
    public void setUid(String uid) {  
        this.uid = uid;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }  
      
    @Override  
    public String toString() {  
        return "{USER:{uid:"+this.uid+",name:"+this.name+",age:"+this.age+"}}";  
    }  
      
}
    http://localhost:8080/TestSpringMongodb/user/save?name=xiaohong&age=23 
    save:{USER:{uid:5020bef0fe7d16eb86275c7a,name:xiaohong,age:23}} 
    http://localhost:8080/TestSpringMongodb/user/find?name=xiaohong 
    find:{USER:{uid:5020bef0fe7d16eb86275c7a,name:xiaohong,age:23}} 


© 著作权归作者所有

共有 人打赏支持
浅夏
粉丝 12
博文 57
码字总数 51761
作品 0
海淀
程序员
spring项目整合mongodb进行开发

spring项目整合mongodb进行开发: MongoDB的性能指标: 100个并发,插入550万条记录的平均吞吐量:大约4100条/秒 MONGODB实际上是一个内存数据库,先将数据保存到内存,然后再写入磁盘中 1....

xiejunbo
2015/08/18
0
1
通过spring-data-mongodb 操作mongodb

一、前言 其实,以前项目组也使用过mongodb,只是那时候是作为主数据库来使用,所以在框架方面会更加复杂,比如使用jpa,如果只是把mongodb作为附数据库使用的话,个人认为通过spring-data-m...

漂泊者及其影子
2014/11/19
0
0
MongoDB在spring中xml传统配置

背景 旧项目中依然在使用springmvc的xml传统配置,最近需要使用MongoDB,需要在spring引入MongoDB的连接配置。 解决 配置mongodb数据库 配置mongodb数据工厂 配置mongodb的Template 配置mon...

亚林瓜子
06/12
0
0
Spring从MongoDB中下载文件之GridFS

问题 之前提到过以GridFS方式上传问题到MongoDB中:Spring保存文件到MongoDB之GridFS支持。现在需要从Mongodb中读取文件,应该怎么处理类? 解决 Maven 注解mongoDbFactory 获取文件流 Note...

亚林瓜子
06/12
0
0
Mongodb File Server 1.0.1,基于 Spring Boot 2.0.3

Mongodb File Server 更新到1.0.1,基于Spring Boot 2.0.3。详细更新如下: MongoDB 3.6.4 Spring Boot 2.0.3.RELEASE Spring Data MongoDB 2.0.8.RELEASE Spring 5.0.7.RELEASE Thymeleaf 3......

waylau
07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

hive分桶

hive为啥分桶? 更加细粒度的划分数据,既可以使用分桶技术实现。 作用 对数据进行抽样查询,较为高效。 可以使查询效率提高。 hive分桶技术 分桶字段是表内字段,默认是对分桶的字段进行has...

Mr_yul
8分钟前
0
0
SQL中的case when then else end用法

Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex...

牛奋Debug
27分钟前
0
0
log4j2发送消息至Kafka

title: 自定义log4j2发送日志到Kafka tags: log4j2,kafka 为了给公司的大数据平台提供各项目组的日志,而又使各项目组在改动上无感知。做了一番调研后才发现log4j2默认有支持将日志发送到kaf...

微笑向暖wx
36分钟前
1
0
LINUX中如何查看某个端口是否被占用(转发)

LINUX中如何查看某个端口是否被占用 之前查询端口是否被占用一直搞不明白,问了好多人,终于搞懂了,现在总结下: 1.netstat -anp |grep 端口号 如下,我以3306为例,netstat -anp |grep 33...

覃大光
今天
1
0
JBolt 1.5.0新版发布,升级到支持最新版JFinal和Jetty,实现了在线更新插件功能

JBolt是一个JFinal极速开发框架 定制版IDE插件 目前仅有Eclipse插件版,Idea插件版正在开发中。 JBolt的详细使用教程请移步到这里 =====版本1.5.0 更新内容 2018年10月13日10:41:52===== 注意...

山东-小木
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部