`
jean7155
  • 浏览: 61528 次
  • 性别: 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的数据操作。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics