系统环境:

操作系统:  windows 7

数 据 库:  mongodb2.0.6

驱 动 包: Spring3.1.2 + mongodb2.7.3 + spring-data-mongodb1.7.0

项目结构:

配置说明:
Web.xml文件配置spring相关与springmvc相关.

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!-- spring配置 --><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/context/spring-context.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- spring MVC配置 --><servlet>  <servlet-name>springmvc</servlet-name>  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param><param-name>contextConfigLocation</param-name>               <param-value>/WEB-INF/context/servlet-context.xml</param-value>  <!--指定XML文件位置--></init-param> <load-on-startup>4</load-on-startup></servlet>  <servlet-mapping>  <servlet-name>springmvc</servlet-name>  <url-pattern>/</url-pattern>  </servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

Springmvc的配置文件servlet-context.xml

<?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:util="http://www.springframework.org/schema/util"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"><!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure --><!-- Enables the Spring MVC @Controller programming model --><mvc:annotation-driven /><context:component-scan base-package="com.pudp" /><!-- 配置基于Session的处理,将提交上来的locale参数进行处理 -->  <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver"><!-- 该属性可以不用配置 --><property name="defaultLocale" value="ja"></property></bean>  <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean></beans>

spring配置文件Spring-context.xml

<?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:util="http://www.springframework.org/schema/util"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"><context:annotation-config /><context:component-scan base-package="com.pudp" />    <!-- 导入mongodb的配置文件 --><import resource="mongodb-context.xml"/></beans>

mongodb的配置文件mongodb-context.xml

<?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: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">  <!-- 加载mongodb的属性配置文件 --><context:property-placeholder location="classpath:mongodb.properties" /><!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 --><mongo:mongo id="mongo" replica-set="${mongo.hostport}"><!-- 一些连接属性的设置 -->    <mongo:optionsconnections-per-host="${mongo.connectionsPerHost}"threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"connect-timeout="${mongo.connectTimeout}"max-wait-time="${mongo.maxWaitTime}"auto-connect-retry="${mongo.autoConnectRetry}"socket-keep-alive="${mongo.socketKeepAlive}"socket-timeout="${mongo.socketTimeout}"slave-ok="${mongo.slaveOk}"write-number="1"write-timeout="0"write-fsync="true"/>        </mongo:mongo><mongo:db-factory dbname="database" mongo-ref="mongo" /><bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"><constructor-arg ref="mongo" /><constructor-arg name="databaseName" value="db_mongo" /></bean></beans>

mongodb的属性配置文件mongodb.properties

mongo.hostport=127.0.0.1:27017
mongo.connectionsPerHost=8
mongo.threadsAllowedToBlockForConnectionMultiplier=4
#连接超时时间
mongo.connectTimeout=1000
#等待时间
mongo.maxWaitTime=1500
mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
#Socket超时时间
mongo.socketTimeout=1500
mongo.slaveOk=true

编写Controller、Service、Dao相关.这里我们测试以下Spring-data-mong中对Collection的实现机制. 我们创建不同的实体类型Member、Article

然后编写对应的Service、Dao实现.这里我们侧重点持久层实现

持久层的操作实现

ArticleDao

package com.pudp.dao;import org.springframework.stereotype.Repository;import com.pudp.base.MongoGenDao;
import com.pudp.model.Article;@Repository
public class ArticleDao extends MongoGenDao<Article>{/*** 实现钩子方法,返回反射的类型*                * @return*/@Overrideprotected Class<Article> getEntityClass() {return Article.class;}}

MemberDao

package com.pudp.dao;import org.springframework.stereotype.Repository;import com.pudp.base.MongoGenDao;
import com.pudp.model.Member;/*** description:** com.pudp.dao.MemberDao.java**/
@Repository
public class MemberDao extends MongoGenDao<Member>{/*** 实现钩子方法,返回反射的类型*                * @return*/@Overrideprotected Class<Member> getEntityClass() {return Member.class;}
}

MongoGenDao中我们实现了对库中添加数据

package com.pudp.base;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;/*** description:*/public abstract class MongoGenDao<T> {@Autowiredprotected MongoTemplate mongoTemplate;/*** 保存一个对象**                * @param t* @return*/public void save(T t){this.mongoTemplate.save(t);}    
    /*** 查询一个对象 */    public String getMongoValue(String key) {        KeyValue keyValue = mongoTemplate.findOne(new Query(Criteria.where(KeyValue.KEY).is(key)), KeyValue.class);        return keyValue == null ? null : keyValue.getValue();    }/*** 为属性自动注入bean服务** @param mongoTemplate*/public void setMongoTemplate(MongoTemplate mongoTemplate) {this.mongoTemplate = mongoTemplate;}}

这里需要说明的是MongoTemplate对库的管理。

MongoTemplate对库Collection的管理

我们使用MongoTemplate操作持久层.这里如果我们没有指定CollectionName的话,会依实体类型的类名作为库中的集合名,当我们执行数据入库操作之后,从数据库中查看到如下信息.

我们想自己定义数据库的Collection名的化,可以在持久层Dao中指定. 关于Mongodb的可以Mongodb相关的内容.

上一章介绍了SpringMVC+ Mongodb 的CRUD + 分页实现.

转自http://www.linuxidc.com/Linux/2015-02/114229.htm

转载于:https://www.cnblogs.com/chenyq/p/5421626.html

SpringMVC整合MongoDB开发 架构搭建相关推荐

  1. SpringMVC整合MongoDB

    首先,在pom文件中新增spring-data-mongodb的依赖: <dependency> <groupId>org.springframework.data</g ...

  2. MONGODB 开发架构设计与模型设计

    在MONGODB 的使用中,对开发模型设计是有更高的要求的,这对于MONGODB 的后期运行的性能有非常总要的意义. 基于MONGODB 的使用中的关系分为 1  VS  1 1  VS  N N V ...

  3. MongoDB开发环境搭建(windows)

    1.去官网下载http://www.mongodb.org/downloads最新版本的mongodb 2.解压缩到你想放的位置 3.以管理员的身份打开CMD(如果不是管理员的身份打开,有可能安装服务 ...

  4. springmvc整合redis架构搭建实例

    新换环境,又有新东西可以学习了,哈皮! 抽空学习之余看了一下redis,个人对Springmvc的爱是忠贞不渝,所以整理了一下Springmvc整合redis的环境搭建.分享学习. 第一步 : 创建  ...

  5. 架构之路之spring+springmvc+maven+mongodb的搭建(转载:http://blog.csdn.net/tomcat_2014/article/details/55100130)

    1.前言 最近项目开发使用到了spring+springmvc+maven+MongoDB,项目中的框架是用springboot进项开发的,对于我们中级开发人员来说,有利有弊,好处呢是springbo ...

  6. Spring+SpringMVC+MyBatis深入学习及搭建(十一)——SpringMVC架构

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6985816.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十)--My ...

  7. Spring+SpringMVC+MyBatis深入学习及搭建(十四)——SpringMVC和MyBatis整合

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7010363.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十三)--S ...

  8. mongodb java项目 源码_spring项目整合mongodb进行开发

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

  9. Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发

    前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)--MyBatis的基础知识.MybatisFirst中存在大量重复的代码.这次简化下代码: 使用MyBatis开发Dao ...

最新文章

  1. hdoj 5199 Gunner map
  2. 创建可微物理引擎Nimble,开源SOTA人体骨骼模型,斯坦福腿疾博士生用AI「助跑」人生...
  3. 链式前向星模板 建图+dfs+bfs+dijkstra
  4. 10.Windows线程切换_FS段寄存器
  5. 谈谈一些有趣的CSS题目(十)-- 结构性伪类选择器
  6. android h5 ftp,HBuilderX ftp插件使用教程
  7. Shell——变量详解及注意点
  8. Spring Data JPA使用Sort进行排序(Using Sort)(转)
  9. inotifywait监听php,inotifywait 是一个可以实时监控文件变动的工具
  10. python3.7怎么用_Python 3.7.0 来了!
  11. VS2015 scanf 函数报错 error C4996: 'scanf'
  12. Unity射线检测指定Layer的物体
  13. 华为--NAT技术easy IP 原理配置or实验详解
  14. 儿研所 计算机训练,金博智慧:注意缺陷、多动障碍儿童计算机认知训练(工作记忆训练)研究...
  15. web渗透的信息收集
  16. 卡通头像生成器Avataaars generator
  17. 对角矩阵、对称矩阵、单位向量、正交矩阵
  18. Spring个人深入学习路线图
  19. java8通讯_8.进程通信
  20. jQuery中的end()方法使用介绍

热门文章

  1. MDI多窗体1130
  2. 让visual连接sqlserver数据库
  3. xlwt边框与边框颜色
  4. django-视图中的request对象的属性
  5. linux-进程杀死的操作
  6. python-循环控制-break
  7. freemarker判断是否为空
  8. sqlserver如何启动数据库邮件
  9. 360路由器刷openwrt后设置wifi中继
  10. Android Fragment(二)