`
jean7155
  • 浏览: 62908 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

spring db & mongodb

阅读更多
spring data & mongodb的参考地址是http://www.springsource.org/spring-data/mongodb/, 可以通过http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/来查询详细的配置和代码的操作文档。当然,看文档是个很累眼睛和脑子的活, 在这里举个简单的例子说明一下SPRING 和MONGDB基本配置。

1. 通过MAVEN 建立WEBAPP项目, 在项目中配置 spring mvc
我是通过ECLIPSE来建立maven项目地, 然后通过阅读这位大虾的教程http://limingnihao.iteye.com/blog/830409配置了spring MVC, 谢谢大虾的帮助!!

web.xml
    <context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			 /WEB-INF/applicationContext*.xml
		</param-value>
	</context-param>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<servlet>
		<servlet-name>mongo</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/mongo-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
 	<servlet-mapping>
 		<servlet-name>mongo</servlet-name>
 		<url-pattern>*.do</url-pattern>
 	</servlet-mapping>


我在启动TOMCAT的时候,碰到了一个问题,TOMCAT操作台报告:listenerError的错误, mongo服务不能启动。 根据网上查询的资料, 我作了以下配置:
在webapp / WEB-INF / classes 目录下,配置了 logging.properties的文件,当TOMCAT启动发生错误时, 会在TOMCAT安装目录下创建logs2目录并写下错误的提示, 可以从这个错误log中得到tomcat操作台错误的信息。
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler  
  
############################################################  
# Handler specific properties.  
# Describes specific configuration info for Handlers.  
############################################################  
  
org.apache.juli.FileHandler.level = FINE  
org.apache.juli.FileHandler.directory = ${catalina.base}/logs2 
org.apache.juli.FileHandler.prefix = error-debug.  
  
java.util.logging.ConsoleHandler.level = FINE  
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter  


pom.xml, 以下一堆 dependency 是常用的, 可以选择使用。
      <!-- spring -->
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-core</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-expression</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>    
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-beans</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-aop</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-context</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-context-support</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-tx</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-jdbc</artifactId>
  	    <version>${org.springframework.version}</version>
  	    
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-orm</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-oxm</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-web</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-webmvc</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.springframework</groupId>
  	    <artifactId>spring-test</artifactId>
  	    <version>${org.springframework.version}</version>
  	</dependency>
  	<!-- jstl -->
  	<dependency>
  	    <groupId>javax.servlet</groupId>
  	    <artifactId>servlet-api</artifactId>
  	    <version>2.5</version>
  	</dependency>
  	<!-- log4j -->
  	<!-- 
  	<dependency>
  	    <groupId>log4j</groupId>
  	    <artifactId>log4j</artifactId>
  	    <version>1.2.14</version>
  	    <scope>runtime</scope>
  	</dependency>
  	-->
  	<!-- commons for db -->
  	<dependency>
  	    <groupId>commons-dbcp</groupId>
  	    <artifactId>commons-dbcp</artifactId>
  	    <version>1.4</version>
  	</dependency>
  	<dependency>
  	    <groupId>commons-pool</groupId>
  	    <artifactId>commons-pool</artifactId>
  	    <version>1.4</version>
  	</dependency>
  	<!-- common logging -->
  	<dependency>
  	    <groupId>commons-logging</groupId>
  	    <artifactId>commons-logging-api</artifactId>
  	    <version>1.1</version>
  	</dependency>
  	<!-- spring fileupload -->
  	<dependency>
  	    <groupId>commons-fileupload</groupId>
  	    <artifactId>commons-fileupload</artifactId>
  	    <version>1.2.2</version>
  	</dependency>
  	<dependency>
  	    <groupId>org.apache.commons</groupId>
  	    <artifactId>commons-io</artifactId>
  	    <version>1.3.2</version>
  	</dependency>
  	<!-- dom4j -->
  	<dependency>
  	    <groupId>dom4j</groupId>
  	    <artifactId>dom4j</artifactId>
  	    <version>1.6.1</version>
  	</dependency>
  	<!-- spring tx dependency -->
  	<dependency>
  	    <groupId>org.aspectj</groupId>
  	    <artifactId>aspectjweaver</artifactId>
  	    <version>1.7.0</version>
  	</dependency>
  	<dependency>
  	    <groupId>aopalliance</groupId>
  	    <artifactId>aopalliance</artifactId>
  	    <version>1.0</version>
  	</dependency>
  	<dependency>
  	    <groupId>cglib</groupId>
  	    <artifactId>cglib-nodep</artifactId>
  	    <version>2.2.2</version>
  	</dependency>
  	<!-- json lib -->
  	<dependency>
  	    <groupId>net.sf.json-lib</groupId>
  	    <artifactId>json-lib</artifactId>
  	    <classifier>jdk15</classifier>
  	    <version>2.4</version>
  	</dependency>
  	<dependency>
  	    <groupId>commons-beanutils</groupId>
  	    <artifactId>commons-beanutils</artifactId>
  	    <version>1.8.3</version>
  	</dependency>
  	<dependency>
  	    <groupId>commons-collections</groupId>
  		<artifactId>commons-collections</artifactId>
  		<version>3.2.1</version>    
  	</dependency>
  	<dependency>
  	    <groupId>commons-lang</groupId>
  	    <artifactId>commons-lang</artifactId>
  	    <version>2.6</version>
  	</dependency>
  	<dependency>
  	    <groupId>net.sf.ezmorph</groupId>
  	    <artifactId>ezmorph</artifactId>
  	    <version>1.0.5</version>
  	</dependency>
  	<!-- junit -->
  	<dependency>
  	    <groupId>junit</groupId>
  	    <artifactId>junit</artifactId>
  	    <version>3.8.1</version>
  	    <scope>test</scope>
  	</dependency>
  	<!-- jstl -->
  	<dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
        <scope>runtime</scope>
    </dependency>



2. 配置实用MONGODB
pom.xml: 在dependency中添加
	<dependency>
    	<groupId>org.springframework.data</groupId>
    	<artifactId>spring-data-mongodb</artifactId>
    	<version>1.2.0.RELEASE</version>
	</dependency>


在spring 的配置文件中,作如下配置
      <!-- mongoDB的配置对象, option可选择使用 -->
      <bean id="mongoOptions" class="com.mongodb.MongoOptions">
          <!-- 服务器是否自动重连,默认为false -->
          <property name="autoConnectRetry" value="false" />
          <!-- 对同一个服务器尝试重连的时间(毫秒),设为0时默认使用15秒 -->
          <property name="maxAutoConnectRetryTime" value="0" />
          <!-- 与每个主机的连接数,默认为10 -->
          <property name="connectionsPerHost" value="10" />
          <!-- 连接超时时间(毫秒),默认为10000 -->
          <property name="connectTimeout" value="10000" />
          <!-- 是否创建一个finalize方法,以便在客户端没有关闭DBCursor的实例时,清理掉它。默认为true -->
          <property name="cursorFinalizerEnabled" value="true" />
          <!-- 线程等待连接可用的最大时间(毫秒),默认为120000 -->
          <property name="maxWaitTime" value="120000" />
          <!-- 可等待线程倍数,默认为5.例如connectionsPerHost最大允许10个连接,则10*5=50个线程可以等待,更多的线程将直接抛异常 -->
          <property name="threadsAllowedToBlockForConnectionMultiplier" value="5" />
          <!-- socket读写时超时时间(毫秒),默认为0,不超时 -->
          <property name="socketTimeout" value="0" />
          <!-- 是socket连接在防火墙上保持活动的特性,默认为false -->
          <property name="socketKeepAlive" value="false" />
          <!-- 对应全局的WriteConcern.SAFE,默认为false -->
          <property name="safe" value="true" />
          <!-- 对应全局的WriteConcern中的w,默认为0 -->
          <property name="w" value="0" />
          <!-- 对应全局的WriteConcern中的wtimeout,默认为0 -->
          <property name="wtimeout" value="0" />
          <!-- 对应全局的WriteConcern.FSYNC_SAFE,如果为真,每次写入要等待写入磁盘,默认为false -->
          <property name="fsync" value="false" />
          <!-- 对应全局的WriteConcern.JOURNAL_SAFE,如果为真,每次写入要等待日志文件写入磁盘,默认为false -->
          <property name="j" value="false" />
      </bean>
 
      <!-- Factory bean that creates the Mongo instance -->
      
    <bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean">
        <property name="host" value="localhost" />
        <property name="mongoOptions" ref="mongoOptions"/>
        
        <!-- 设定写策略,默认为WriteConcern.SAFE,优先级高于mongoOptions中的safe -->
        <property name="writeConcern" value="SAFE"/>
    </bean>
    
    <!-- MongoTemplate for connecting and quering the documents in the database -->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg name="mongo" ref="mongo" />
        <constructor-arg name="databaseName" value="test" />
    </bean>
 
    <!-- Use this post processor to translate any MongoExceptions thrown in @Repository annotated classes -->
    <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
     


通过以上配置,可以在数据操作的源码中直接调用 mangoTemplate 来进行mangoDB的数据操作。
分享到:
评论

相关推荐

    Spring4 整合MongoDB详细讲解项目源码

    spring4 整合MongoDB详细讲解项目源码 Mongo DB 是目前在IT行业非常流行的一种非关系型数据库 NoSql 其灵活的数据存储方式备受当前IT从业人员的青睐 Mongo DB很好的实现了面向对象的思想 OO思想 在Mongo DB中 每一条...

    源码-spring+MongoDB的整合

    当我们需要将Spring与MongoDB整合时,目的是利用Spring的优秀管理和组织能力来操作MongoDB的数据存储。 首先,我们要了解Spring Data MongoDB项目,这是Spring框架对MongoDB支持的一部分。Spring Data MongoDB提供...

    spring-data-mongodb-reference 1.5.4

    ### Spring Data MongoDB 1.5.4 Reference Documentation #### 一、引言 Spring Data MongoDB 是 Spring Data 项目的一部分,旨在简化 MongoDB 数据访问,并提供一个一致的编程模型,该模型适用于 Spring ...

    spring+mongodb集群搭建Demo

    为了确保集群的健康运行,可以使用MongoDB的监控工具,如`db.runCommand({serverStatus: 1})`,或集成外部监控系统如Prometheus和Grafana。 总结,搭建Spring+MongoDB集群涉及安装MongoDB、配置复制集和分片、设置...

    用MongoDB和Spring_Data创建Java应用

    ### 使用MongoDB与Spring Data创建Java应用:深入解析与实践指南 #### MongoDB与Spring Data简介 MongoDB,作为NoSQL数据库家族的一员,以其强大的可扩展性、高性能和开源特性,在数据库领域占据了一席之地。不同...

    MongoDB复制集及与Spring集成操作

    本文将详细介绍如何在Linux环境下设置MongoDB复制集,同时涵盖用户认证的配置以及MongoDB与Spring框架的集成。 首先,让我们了解MongoDB复制集。复制集是MongoDB中的一组MongoDB实例,它们之间保持着数据同步。当主...

    Spring Data MongoDB 1.1.0 API CHM版

    Spring Data MongoDB 1.1.0 API CHM版 制作成chm版,方便大家查阅

    spring结合mongodb例子(maven java project)

    注意:spring的不同版本与mongodb结合可能会有问题,自测:spring4.2.1结合mongodb会报错:**springframework.core.context.**service 此外,例子同时涉及: 1.例子中还说明了配置文件放在maven的src/main/java下与...

    springboot整合mongodb

    mongodb版本号3.2,需手动开启http服务,启动时使用命令 ./mongod --httpinterface 新增 修改 删除 查询 排序 分页 可查看: https://blog.csdn.net/m0_37132783/article/details/96992439

    springMVC整合MongoDb整个工程下载

    将 Spring MVC 与 MongoDB 结合,可以实现高效、灵活的后端数据存储和处理。 整合 Spring MVC 和 MongoDB 的过程主要涉及以下几个关键知识点: 1. **MongoDB 驱动安装**:在项目中,我们需要引入 MongoDB 的 Java ...

    spring mongodb整合

    在Spring框架中整合MongoDB是一个常见的任务,它允许我们利用Spring Data MongoDB库来简化与MongoDB数据库的交互。以下是如何进行Spring MongoDB整合的详细步骤和相关知识点: 1. **依赖管理**: - `spring-core-...

    Mongodb入门教程、示例+Spring Boot完整示例+聚合.docx

    "Mongodb入门教程、示例+Spring Boot完整示例+聚合" 本节课将完整地介绍 MongoDB 的入门教程、示例、Spring Boot 完整示例和聚合。 简介 NoSQL(Not Only SQL)是一种非关系型的数据库, MongoDB 是基于分布式...

    Sping boot MongoDB 配置多数据源

    在Spring Boot应用中,MongoDB的多数据源配置是一项关键任务,特别是在大型分布式系统中,可能需要连接到多个数据库以实现数据隔离、读写分离或灾难恢复策略。本篇文章将详细解析如何在Spring Boot中配置MongoDB的多...

    使用Java基于MongoDB和SpringData应用.docx

    3. 创建数据存储目录,例如 `C:\mongodb\data\db`。 4. 运行 `mongod.exe`,指定数据存储目录,如果路径包含空格需用双引号括起。 5. 启动 MongoDB shell(`mongo.exe`),默认监听本地的 27017 端口。也可以将其...

    使用spring连接及操作mongodb3.0实例

    MongoDB是当前非常流行的一个NoSQL数据库,而Spring框架则为Java开发者提供了强大的支持,包括与各种数据库的集成,MongoDB也不例外。在本文中,我们将探讨如何使用Spring连接并操作MongoDB 3.0版本。 首先,我们...

    Spring-data-mongo应用

    本案例主要介绍了如何在 Spring 4.1.3.RELEASE 版本下集成 MongoDB,并通过 Spring Data MongoDB 1.8.0 进行简单的数据操作。 #### 二、环境准备 - **Spring版本**:4.1.3.RELEASE - **Spring Data MongoDB版本**...

    mongodb+spring+maven环境搭建

    4. **配置Spring**:创建一个Spring配置文件,例如`mongo-config.xml`,配置MongoDB的数据源和Spring Data MongoDB的Repository。你需要提供MongoDB服务器的地址、端口、数据库名等信息。 ```xml ...

    spring-mongodb-example:Spring 4 MongoDB连接入门

    Spring 4 mongoDB连接-入门套件 将文档插入mongo db集合的愚蠢应用程序。 依赖关系经理 Maven的3.2.5 如何建造 $ cd $ mvn clean package 怎么跑 $ cd $ java -jar target/lib/spring-mongodb-0.1.0.jar 运行...

Global site tag (gtag.js) - Google Analytics