Spring integrates MongoDB

Source: Internet
Author: User
Tags connect mongo findone mongoclient

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

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.