最近花了一些时间学习了下MongoDB数据库,感觉还是比较全面系统的,涉及了软件安装、客户端操作、安全认证、副本集和分布式集群搭建,以及使用Spring Data连接MongoDB进行数据操作,收获很大。特此记录,以备查看。
文章目录:
MongoDB和Java(1):Linux下的MongoDB安装
MongoDB和Java(2):普通用户启动mongod进程
MongoDB和Java(4):Spring Data整合MongoDB(XML配置)
MongoDB和Java(5):Spring Data整合MongoDB(注解配置)
MongoDB和Java(6):Spring Data整合MongoDB副本集、分片集群
本文记录如何使用XML配置方式整合Spring data和MongoDB
源代码下载
MongoDB和Java学习代码.zip
1、环境准备
JDK 1.8
Spring 4.2.5.RELEASE
Junit 4.10
Spring-data-mongodb 1.9.0.RELEASE
Logback 1.1.7
Maven 3.2.1
依赖
1 <properties> 2 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 3 <maven.compiler.source>1.8</maven.compiler.source> 4 <maven.compiler.target>1.8</maven.compiler.target> 5 <spring.version>4.2.5.RELEASE</spring.version> 6 </properties> 7 8 <dependencies> 9 10 <dependency> 11 <groupId>junit</groupId> 12 <artifactId>junit</artifactId> 13 <version>4.10</version> 14 <scope>test</scope> 15 </dependency> 16 17 <dependency> 18 <groupId>org.springframework</groupId> 19 <artifactId>spring-context-support</artifactId> 20 <version>${spring.version}</version> 21 </dependency> 22 <dependency> 23 <groupId>org.springframework</groupId> 24 <artifactId>spring-aop</artifactId> 25 <version>${spring.version}</version> 26 </dependency> 27 <dependency> 28 <groupId>org.springframework</groupId> 29 <artifactId>spring-test</artifactId> 30 <version>${spring.version}</version> 31 <scope>test</scope> 32 </dependency> 33 34 <dependency> 35 <groupId>org.springframework.data</groupId> 36 <artifactId>spring-data-mongodb</artifactId> 37 <version>1.9.0.RELEASE</version> 38 </dependency> 39 40 <!-- logback日志 --> 41 <dependency> 42 <groupId>ch.qos.logback</groupId> 43 <artifactId>logback-core</artifactId> 44 <version>1.1.7</version> 45 </dependency> 46 <dependency> 47 <groupId>ch.qos.logback</groupId> 48 <artifactId>logback-classic</artifactId> 49 <version>1.1.7</version> 50 </dependency> 51 <dependency> 52 <groupId>org.aspectj</groupId> 53 <artifactId>aspectjweaver</artifactId> 54 <version>1.6.1</version> 55 </dependency> 56 57 </dependencies> 58 59 <build> 60 <finalName>security-demo</finalName> 61 <plugins> 62 <plugin> 63 <groupId>org.apache.maven.plugins</groupId> 64 <artifactId>maven-compiler-plugin</artifactId> 65 <version>3.3</version> 66 <configuration> 67 <source>${maven.compiler.source}</source> 68 <target>${maven.compiler.target}</target> 69 <encoding>${project.build.sourceEncoding}</encoding> 70 </configuration> 71 </plugin> 72 </plugins> 73 </build>
2、mongodb配置文件
这个是spring的子配置文件,通过从.properties文件读取连接属性创建mongoClient对象,再创建DBFactory对象,通过DBFactory创建MongoTemplate,我们的数据层实现类就是使用MongoTemplate操作MongoDB的。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:mongo="http://www.springframework.org/schema/data/mongo" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 8 http://www.springframework.org/schema/context 9 http://www.springframework.org/schema/context/spring-context-4.2.xsd 10 http://www.springframework.org/schema/data/mongo 11 http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd"> 12 13 <!-- 连接属性文件,配置服务器IP端口、数据库和连接参数 --> 14 <context:property-placeholder location="classpath:mongodb.properties" 15 ignore-unresolvable="true" /> 16 17 <!-- 创建MongoClient --> 18 <mongo:mongo-client id="mongo" replica-set="${mongo.hostport}"> 19 <mongo:client-options connections-per-host="${mongo.connectionsPerHost}" 20 threads-allowed-to-block-for-connection-multiplier= 21 "${mongo.threadsAllowedToBlockForConnectionMultiplier}" 22 connect-timeout="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}" 23 socket-keep-alive="${mongo.socketKeepAlive}" 24 socket-timeout="${mongo.socketTimeout}" /> 25 </mongo:mongo-client> 26 27 <!-- MongoDbFactory --> 28 <mongo:db-factory id="mgFactory" dbname="${mongo.dbname}" 29 mongo-ref="mongo" /> 30 31 <!-- MongoTemplate --> 32 <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> 33 <constructor-arg name="mongoDbFactory" ref="mgFactory" /> 34 </bean> 35 36 </beans>