项目模块:
前期规划,实现部分
java_wxid ├── demo // 演示模块 │ └── 模块名称:apache-mybatis-demo模块 //Apache Mybatis集成(已实现并有博文总结) │ └── 模块名称:apache-shardingsphere-demo模块 //Apache ShardingSphere集成(已实现并有博文总结) │ └── 模块名称:design-demo模块 //设计模式实战落地(已实现并有博文总结) │ └── 模块名称:elasticsearch-demo模块 //ElasticSearch集成(已实现并有博文总结) │ └── 模块名称:mongodb-demo模块 //MongoDB集成(已实现并有博文总结) │ └── 模块名称:redis-demo模块 //Redis集成(已实现并有博文总结) │ └── 模块名称:spring-boot-demo模块 //Spring Boot快速构建应用(已实现并有博文总结) │ └── 模块名称:spring-cloud-alibaba-nacos-demo模块 //Spring Cloud Alibaba Nacos集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-alibaba-seata-demo模块 //Spring Cloud Alibaba Seata集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-alibaba-sentinel-demo模块 //Spring Cloud Alibaba Sentinel集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-gateway-demo模块 //Spring Cloud Gateway集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-hystrix-demo模块 //Spring Cloud Hystrix集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-open-feign-demo模块 //Spring Cloud Open Feign集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-ribbon-demo模块 //Spring Cloud Ribbon集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-security-oauth2-demo模块 //Spring Cloud Security Oauth2集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-security-oauth2-sso-client-demo模块 //Spring Cloud Security Oauth2集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-skywalking-demo模块 //Spring Cloud Skywalking集成(已实现并有博文总结) │ └── 模块名称:spring-cloud-stream-demo模块 //Spring Cloud Stream集成(已实现并有博文总结) │ └── 模块名称:swagger-demo模块 //springfox-swagger2集成(已实现并有博文总结) │ └── 模块名称:xxl-job模块 //xxl-job集成(已实现并有博文总结) │ └── 模块名称:apache-spark-demo模块 //Apache Spark集成 │ └── 模块名称:etl-hdfs-hive-hbase-demo模块 //ETL、HDFS、Hive、Hbase集成 │ └── 模块名称:ddd-mode-demo模块 //DDD领域设计 │ └── 模块名称:netty-demo模块 //Netty集成 │ └── 模块名称:vue-demo模块 //前端vue集成 ├── document // 文档 │ └── JavaKnowledgeDocument //java知识点 │ └── java基础知识点.md │ └── mq知识点.md │ └── mysql知识点.md │ └── redis知识点.md │ └── springcould知识点.md │ └── spring知识点.md │ └── FounderDocument //创始人 │ └── 创始人.md
系列文章:快速集成各种微服务相关的技术,帮助大家可以快速集成到自己的项目中,节约开发时间。
提示:系列文章还未全部完成,后续的文章,会慢慢补充进去的。
文章目录
创建mongodb-demo项目
修改pom.xml
修改application.properties
创建MongodbDemo
创建MongodbController
校验mongodb是否正常工作
启动项目
访问接口http://localhost:8094/mongodb/add
创建mongodb-demo项目
项目代码:https://gitee.com/java_wxid/java_wxid/tree/master/demo/mongodb-demo
项目结构如下(示例):
修改pom.xml
代码如下(示例):
<?xml version="1.0" encoding="UTF-8"?> <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>mongodb-demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mongodb-demo</name> <description>Demo project for Spring Boot</description> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.6.2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 开发热启动:在开发过程中,由于每次修改完项目中的类都需要重启服务才能看到运行的结果,对于开发调试很不友好,浪费时间,引入devtools工具可以快速启动项目 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> <!-- 在SpringBoot中,我们可以通过引入 spring-boot-starter-data-mongodb 依赖来实现spring-data-mongodb 的自动配置。 但是,默认情况下,该依赖并没有像使用MySQL或者Redis那样为我们提供连接池配置的功能。 需要说明的是,MongoDB的客户端本身就是一个连接池,因此,我们只需要配置客户端即可。 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <!--apache commons-pool2 包提供了一个通用的对象池技术的实现。可以很方便的基于它来实现自己的对象池,比如 DBCP 和 Jedis 他们的内部对象池的实现就是依赖于 commons-pool2 。 commons-pool2 由三大模块组成:ObjectPool 、PooledObject 和 PooledObjectFactory 。 ObjectPool :提供所有对象的存取管理。 PooledObject :池化的对象,是对真正对象的一个包装,加上了对象的一些其他信息,包括对象的状态(已用、空闲),对象的创建时间等。其实现要求是线程安全的。 PooledObjectFactory :工厂类,负责池化对象的创建,对象的初始化,对象状态的销毁和对象状态的验证。其实现要求是线程安全的。 通常,ObjectPool 会持有 PooledObjectFactory ,将具体的对象的创建、初始化、销毁等任务委托给 PooledObjectFactory 处理,工厂操作的对象是 PooledObject , 即具体的 Object 的包装类。因此,获取对象依赖 ObjectPool 而不是 PooledObjectFactory 。--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> </dependencies> </project>
修改application.properties
代码如下(示例):
server.port=8094 spring.data.mongodb.uri=mongodb://139.224.137.74:27017/demo
创建MongodbDemo
代码如下(示例):
package com.example.mongodbdemo.entity; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; /** * @author zhiweiLiao<zhiwei.liao @ sgs.com> * @Description MongoDB的文档,@Id表示主键,@Indexed是索引字段,@Field代表字段 * @Date create in 2022/9/12 0012 21:12 */ @Document("mongodb_demo") public class MongodbDemo { @Id @Indexed private String id; @Field("name") private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
创建MongodbController
代码如下(示例):
package com.example.mongodbdemo.controller; import com.example.mongodbdemo.entity.MongodbDemo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.web.bind.annotation.*; /** * @author zhiweiLiao<zhiwei.liao @ sgs.com> * @Description * @Date create in 2022/9/12 0012 21:03 */ @RestController @RequestMapping("/mongodb") public class MongodbController { @Autowired private MongoTemplate mongoTemplate; /** * 添加一条记录 * @param mongodbDemo * @return */ @PostMapping("/add") public MongodbDemo add(@RequestBody MongodbDemo mongodbDemo){ return mongoTemplate.save(mongodbDemo); } }
校验mongodb是否正常工作
启动项目
如下图(示例):
访问接口http://localhost:8094/mongodb/add
如下图(示例):
添加了一条记录并且返回了数据,mongodb可以正常工作