Spring-data-mongo应用
### Spring-data-mongo应用知识点详解 #### 一、Spring Data MongoDB 概述 Spring Data MongoDB 是 Spring Data 项目的一部分,它提供了一套统一的数据访问抽象层,使得开发人员能够更加容易地进行数据库操作,而无需关注底层的具体实现细节。本案例主要介绍了如何在 Spring 4.1.3.RELEASE 版本下集成 MongoDB,并通过 Spring Data MongoDB 1.8.0 进行简单的数据操作。 #### 二、环境准备 - **Spring版本**:4.1.3.RELEASE - **Spring Data MongoDB版本**:1.8.0 - **MongoDB版本**:3.1.0 - **构建工具**:Maven 3.5 - **依赖管理**:通过 Maven 管理项目依赖 #### 三、项目搭建 1. **增加 Maven 依赖** 在项目的 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.8.0.RELEASE</version> </dependency> ``` 2. **配置 Spring Data MongoDB** 在 Spring 的配置文件 `spring-data.xml` 中增加以下配置: ```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: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/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd"> <!-- 配置 MongoDB 客户端 --> <mongo:mongo-client id="mongoClient" host="${mongo.host}" port="${mongo.port}"> <mongo:client-options connections-per-host="${mongo.connectionsPerHost}" min-connections-per-host="${mongo.minConnectionsPerHost}" threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}" connect-timeout="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}" socket-keep-alive="${mongo.socketKeepAlive}" socket-timeout="${mongo.socketTimeout}" description="${mongo.description}" max-connection-idle-time="${mongo.maxConnectionIdleTime}" max-connection-life-time="${mongo.maxConnectionLifeTime}" heartbeat-socket-timeout="${mongo.heartbeatSocketTimeout}" heartbeat-connect-timeout="${mongo.heartbeatConnectTimeout}" min-heartbeat-frequency="${mongo.minHeartbeatFrequency}" heartbeat-frequency="${mongo.heartbeatFrequency}" /> </mongo:mongo-client> <!-- 数据库工厂 --> <mongo:db-factory id="mongoDbFactory" dbname="${mongo.defaultDbName}" mongo-ref="mongoClient"/> <!-- Spring 提供的 MongoDB 操作模板 --> <mongo:template id="mongoTemplate" db-factory-ref="mongoDbFactory" write-concern="NORMAL"/> </beans> ``` 3. **配置属性文件** 创建 `db.properties` 文件来存储 MongoDB 的连接信息: ```properties mongo.host=localhost mongo.port=27017 mongo.defaultDbName=mydb mongo.connectionsPerHost=200 mongo.minConnectionsPerHost=0 mongo.threadsAllowedToBlockForConnectionMultiplier=5 mongo.connectTimeout=10000 mongo.maxWaitTime=120000 mongo.socketKeepAlive=true mongo.socketTimeout=0 mongo.description=SpringDataMongo mongo.maxConnectionIdleTime=-1 mongo.maxConnectionLifeTime=-1 mongo.heartbeatSocketTimeout=20000 mongo.heartbeatConnectTimeout=20000 mongo.minHeartbeatFrequency=5000 mongo.heartbeatFrequency=10000 ``` 4. **创建实体类和映射接口** - **创建 Sys_user 实体类**:定义用户实体类,包含基本属性如 `id`, `username`, `password` 等。 - **创建 SysUserRepository 接口**:实现对 `Sys_user` 实体类的操作,继承自 `MongoRepository<Sys_user, String>`。 ```java public interface SysUserRepository extends MongoRepository<Sys_user, String> { Sys_user findByUsername(String username); } ``` 5. **编写服务层** - **创建 SysUserService 类**:注入 `SysUserRepository` 接口,实现 CRUD 操作。 ```java @Service public class SysUserService { @Autowired private SysUserRepository sysUserRepository; // 测试方法 public void test() { Sys_user user = new Sys_user(); user.setUsername("test"); user.setPassword("123456"); sysUserRepository.save(user); Sys_user foundUser = sysUserRepository.findByUsername("test"); System.out.println("Found User: " + foundUser); } } ``` #### 四、总结 本文详细介绍了如何在 Spring 4.1.3.RELEASE 版本下集成 MongoDB 并使用 Spring Data MongoDB 1.8.0 进行简单的数据操作。从环境搭建、依赖引入到具体实现进行了详尽的说明。通过以上步骤,我们可以快速搭建起一个基于 Spring 和 MongoDB 的数据持久化层,极大地简化了日常开发中的数据处理工作。
- 粉丝: 11
- 资源: 24
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助