MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它的特点是高性能、易部署、易使用,存储数据非常方便。MongoDB服务端可运行在Linux、Windows或mac os x平台,支持32位和64位应用,默认端口为27017。下载地址:MongoDB官网下载,官方文档:MongoDB中文网
MongoDB在Sringboot中的应用:Webflux+MongoDB整合,搭建项目需要引入依赖包如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb-reactive</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
webmvc和webflux比较:
webmvc和webflux作为spring framework的两个重要模块,代表了两个IO模型,阻塞式和非阻塞式。
1.webmvc是基于servlet的阻塞式模型(一般称为oio),一个请求到达服务器后会单独分配一个线程去处理请求,如果请求包含IO操作,线程在IO操作结束之前一直处于阻塞等待状态,这样线程在等待IO操作结束的时间就浪费了。
2.webflux是基于reactor的非阻塞模型(一般称为nio),同样,请求到达服务器后也会分配一个线程去处理请求,如果请求包含IO操作,线程在IO操作结束之前不再是处于阻塞等待状态,而是去处理其他事情,等到IO操作结束之后,再通知(得益于系统的机制)线程继续处理请求。
application.properties文件的mongodb连接配置
# MongoDB连接URI
spring.data.mongodb.host=localhost
# MongoDB连接用户名
spring.data.mongodb.username=demo
# MongoDB连接密码
spring.data.mongodb.password=123456
# MongoDB端口号
spring.data.mongodb.port=27017
# MongoDB数据库名称
spring.data.mongodb.database=mongoDB
#springboot应用端口号
server.port=8090
#springboot应用名称
spring.application.name=fluxSystem
Springboot启动类代码如下:
@EnableWebFlux
@SpringBootApplication(scanBasePackages="com.webflux")
//启动WebFlux中MongoDB的JPA接口
@EnableReactiveMongoRepositories(basePackages="com.webflux.persistence.repo")
public class InitApplication {
public static void main(String[] args) {
SpringApplication.run(InitApplication.class, args);
}
}
响应式编程特点:
(1