Version:
Spring:4.1.3.release
mongo-java-driver.version:3.4.1
Spring-data-mongodb.version:1.7.0.release
Configuration:
1. Add core dependencies in Pom.xml (two)
+++++++++++++++++++++++++++++++++++++++++++++++++++++
<!--Mongo-java-dirver--><dependency><groupid>org.mongodb</groupid><artifactid> mongo-java-driver</artifactid><version>3.4.1</version></dependency><!-- Spring-data-mongodb--><dependency><groupid>org.springframework.data</groupid>< artifactid>spring-data-mongodb</artifactid><version>1.7.0.release</version></ Dependency>
++++++++++++++++++++++++++++++++++++++++++++++++++++++
Full Pom.xml file contents are as follows:
<project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/ Xmlschema-instance "xsi:schemalocation=" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ Maven-4.0.0.xsd "><modelversion>4.0.0</modelversion><groupid>com.fwmagic.mongo</groupid ><artifactId>fwmagic-mongo</artifactId><version>1.0.0-SNAPSHOT</version>< properties><junit.version>4.12</junit.version><spring.version>4.1.3.release</ spring.version><fastjson.version>1.2.15</fastjson.version><slf4j.version>1.6.4</ slf4j.version><joda-time.version>2.5</joda-time.version><commons-lang3.version>3.3.2</ commons-lang3.version><commons-io.version>1.3.2</commons-io.version>< mongo-java-driver.version>3.4.1</mongo-java-driver.version><spring-data-mongodb.version>1.7.0. Release</spring-data-mongodb.version><env>dev</env><p roject.build.sourceencoding>utf-8</project.build.sourceencoding><maven.compiler.encoding> utf-8</maven.compiler.encoding></properties><dependencies><!--junit -->< dependency><groupid>junit</groupid><artifactid>junit</artifactid><version>${ junit.version}</version></dependency><!-- fastjson --><dependency>< groupid>com.alibaba</groupid><artifactid>fastjson</artifactid><version>${ fastjson.version}</version></dependency><!-- Spring --><dependency>< Groupid>org.springframework</groupid><artifactid>spring-context</artifactid><version >${spring.version}</version></dependency><dependency><groupid>org.springframework </groupid><artifactid>spring-context-support</artifactid><version>${spring.version} </version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId>< Version>${spring.version}</version></dependency><dependency><groupid> org.springframework</groupid><artifactid>spring-webmvc</artifactid><version>${ spring.version}</version></dependency><dependency><groupid>org.springframework</ Groupid><artifactid>spring-aspects</artifactid><version>${spring.version}</version> </dependency><dependency><groupId>org.springframework</groupId><artifactId> spring-test</artifactid><version>${spring.version}</version></dependency><!-- SLF4J Log --><dependency><groupid>org.slf4j</groupid><artifactid>slf4j-log4j12 </artifactId><version>${slf4j.version}</version></dependency><!-- apache Tool components --><dependency><groupid>org.apache.commons</groupid><artifactid>commons-lang3</artifactid><version>${ Commons-lang3.version}</version></dependency><dependency><groupid>org.apache.commons </groupid><artifactid>commons-io</artifactid><version>${commons-io.version}</ version></dependency><!-- Time Operation Components --><dependency><groupid>joda-time</ Groupid><artifactid>joda-time</artifactid><version>${joda-time.version}</version> </dependency><dependency><groupId>org.apache.commons</groupId><artifactId> commons-pool2</artifactid><version>2.0</version></dependency><!-- Mongo-java-dirver --><dependency><groupid>org.mongodb</groupid><artifactid> Mongo-java-driver</artifactid><version>${mongo-java-driver.version}</version></dependency ><!-- spring-data-mongodb --><dependency><groupid>org.springframework.data</groupid><artifactid>spring-data-mongodb</ Artifactid><version>${spring-data-mongodb.version}</version><exclusions><exclusion> <artifactid>slf4j-api</artifactid><groupid>org.slf4j</groupid></exclusion></ exclusions></dependency></dependencies><build><plugins><!-- java Compile plugin - -><plugin><groupid>org.apache.maven.plugins</groupid><artifactid> Maven-compiler-plugin</artifactid><version>3.2</version><configuration><source> 1.7</source><target>1.7</target><encoding>utf-8</encoding></configuration> </plugin><!-- Configure the Tomcat plugin --><plugin><groupid>org.apache.maven.plugins</ groupid><artifactid>maven-war-plugin</artifactid><version>2.6</version>< Configuration><archiveclasses>trUe</archiveclasses><packagingexcludes>web-inf/classes/**</packagingexcludes><webresources ><resource><directory>src/main/webapp/WEB-INF</directory><includes><include> Applicationcontext.xml</include></includes><filtering>true</filtering><targetpath >WEB-INF</targetPath></resource></webResources></configuration></plugin>< plugin><groupid>org.apache.maven.plugins</groupid><artifactid>maven-surefire-plugin</ Artifactid><version>2.7.1</version></plugin></plugins></build></project >
2, Mongo.properties
###################################################### #MongoDB configuration################################### ################ #mongo. host=localhostmongo.port=27017mongo.dbname=demodbmongo.username=adminmongo.password= 123456# the maximum number of blocked mongo.connectionsperhost=8# thread queues that a thread becomes available The result of multiplying the Connectionsperhost value above is the thread queue maximum mongo.threadsallowedtoblockforconnectionmultiplier=4# connection timeout (ms) mongo.connecttimeout=1500# max wait time mongo.maxwaittime=1500# auto re-connect mongo.autoconnectretry=true# Scoket Keep Active mongo.socketkeepalive= true#scoket timeout time mongo.sockettimeout=1500# read/write Detach mongo.slaveok=true
3, Applicationcontext.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:p="/HTTP/ www.springframework.org/schema/p "xmlns:context=" Http://www.springframework.org/schema/context "xmlns:mvc=" http ://www.springframework.org/schema/mvc " 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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/ spring-context.xsd http://www.springframework.org/schema/data/ Mongo http://www.springframework.org/schema/datA/mongo/spring-mongo.xsd "> <!--Configure service Package scan, automatically inject service --><context:component-scan base-package= "Com.fwmagic" /><!-- Use the spring-brought placeholder replacement feature --><beanclass= " Org.springframework.beans.factory.config.PropertyPlaceholderConfigurer "><!-- allow JVM parameter overrides --> <property name= "Systempropertiesmodename" value= "System_properties_mode_override" /><! -- Ignore resource file not found --><property name= "Ignoreresourcenotfound" value= "true" /> <!-- Configuration resource file --><property name= "locations" ><list><value>classpath: Mongo.properties</value><value>classpath:log4j.properties</value></list></property ></bean><!--Credentials is configured as: User name: password @ default database --><mongo:mongo-client id= "Mongoclient" host= "${mongo.host}" port= "${mongo.port}" credentials= "${mongo.username}:${mongo.password}@${Mongo.dbname} "><mongo:client-options write-concern=" SAFE "connections-per-host=" ${ Mongo.connectionsperhost} "threads-allowed-to-block-for-connection-multiplier=" ${ Mongo.threadsallowedtoblockforconnectionmultiplier} "connect-timeout=" ${mongo.connecttimeout} " Max-wait-time= "${mongo.maxwaittime}" socket-timeout= "${mongo.sockettimeout}" /></mongo:mongo-client ><mongo:db-factory id= "Mongodbfactory" dbname= "${mongo.dbname}" mongo-ref= "MongoClient" / ><bean id= "Mongotemplate" class= "Org.springframework.data.mongodb.core.MongoTemplate" >< Constructor-arg name= "Mongodbfactory" ref= "Mongodbfactory" /></bean></beans>
Unit tests:
package com.fwmagic.dao;import java.util.date;import java.util.list;import org.junit.test; Import org.junit.runner.runwith;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.criteriadefinition;import org.springframework.data.mongodb.core.query.query;import org.springframework.data.mongodb.core.query.update;import org.springframework.test.context.contextconfiguration;import org.springframework.test.context.junit4.springjunit4classrunner;import com.fwmagic.pojo.notice; @RunWith ( Springjunit4classrunner.class) @ContextConfiguration ("Classpath:spring/applicationcontext*.xml") public class noticedaotest {@Autowiredprivate NoticeDAO dao;/** * Query All documents */@ Testpublic void testlist () {query query = new query (); List<notice> notice = dao.list (Query, notice.class);for (Notice n : notice) {system.out.println (n);}} /** * inserting document */@Testpublic void testinsert () {notice notice = new Notice (); Notice.setsiteid (7); Notice.setcreator ("Diaochan"); Notice.settitle ("Today Monday"); Notice.setupdatetime (new date ());d Ao.insert (notice);} /** * Update document */@Testpublic void testupdate () {criteria criteria = new criteria (); Criteria.and ("creator"). Is ("Zhaojun"); Query query = new query (criteria);d ao.update (query, update.update ("CreateTime", New date ()), notice.class);} /** * Delete a row of documents */@Testpublic void testremove () {criteria criteria = new criteria (); Criteria.and ("creator"). Is ("Zhaojun"); Query query = new query (criteria);d ao.remove (Query, notice.class);} Not finishedTo be Continued ...}
Noticedao.java
package com.fwmagic.dao;import java.util.list;import org.springframework.beans.factory.annotation.autowired;import org.springframework.data.mongodb.core.mongotemplate;import org.springframework.data.mongodb.core.query.query;import org.springframework.data.mongodb.core.query.update;import org.springframework.stereotype.repository; import com.fwmagic.pojo.notice;import com.mongodb.writeresult; @Repositorypublic class noticedao implements basedao<notice>{@Autowiredprivate mongotemplate mt;@ Overridepublic list<notice> list (Query query, class<notice> entityclass) {return mt.find (Query, entityclass);} @Overridepublic notice findone (Query query, class<notice> entityclass) { Return mt.findone (Query, entityclass);} @Overridepublic void insert (notice notice) {Mt.insert (Notice);} @Overridepublic writeresult&Nbsp;update (Query query, update update, class<?> entityclass) {return Mt.updatefirst (Query, update, entityclass);} @Overridepublic void remove (query query, class<?> entityclass) {Mt.remove (Query, entityclass);}}
Complete Demo please visit view here.
This article is from the "Simplelife" blog, make sure to keep this source http://simplelife.blog.51cto.com/9954761/1932408
Spring integrates MongoDB