多说一句,在之前的 Spring Boot 视频教程中,松哥对 MongoDB 也有过介绍,感兴趣的小伙伴戳这里:Spring Boot+Vue+微人事视频教程。
配置完 MongoDB 后,我们的准备工作就算完成了。
2.实体类与 Dao
接下来我们需要准备一个操作的实体类,这些都是 JPA 的基本操作,松哥就不再赘述,如果小伙伴们不熟悉的话,可以公号后台回复 666 查看原创的 Spring Boot 教程,里边有涉及到,实体类如下:
@Document
public class User {
@Id
private String id;
private String username;
private String address;
public String getId(){
return id;}
public void setId(String id){
this.id= id;}
public String getUsername(){
return username;}
public void setUsername(String username){
this.username= username;}
public String getAddress(){
return address;}
public void setAddress(String address){
this.address= address;}}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
接下来我们再提供一个实体类操作的接口,如下:
@EnableMongoRepositories
public interface UserDao extends ReactiveMongoRepository<User,String>{}
1.
2.
3.
自定义一个空的接口继承自 ReactiveMongoRepository,里边什么都不用写,这套路就和松哥之前视频中介绍的 JPA 的用法如出一辙(毕竟都是 Spring Data 家族),所以这块就没啥好说的,不赘述。
3.测试接口
接下来我们来看看测试接口。
3.1 添加
首先我们来看看添加数据。
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
UserDao userDao;
@PostMapping("/")
public Mono<User> addUser(@RequestBody User user){
return userDao.save(user);}}
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
添加完成后,返回刚刚添加成功的对象。save 方法的返回值就是 Mono。
我们来看看测试效果:
3.2 查询
再来看看查询效果:
@GetMapping("/")
public Flux<User> getAll(){
return userDao.findAll();}
@GetMapping(value ="/stream/all", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<User> streamGetAll(){
return userDao.findAll();}