WebFlux 最為人所詬病的是資料庫的支援問題,畢竟資料是一個應用的生命,我們接觸的大部分應用程式都是有資料庫的,而 WebFlux 在這一方面的支援行一直比較弱,這也是大家總是吐槽
2021-06-18 19:33:48
spring.data.mongodb.port=27017
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.username=madmin
spring.data.mongodb.password=m123
spring.data.mongodb.database=test
spring.data.mongodb.authentication-database=admin
public class User {
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;
}
}
public interface UserDao extends ReactiveMongoRepository<User,String> {
}
public class UserController {
UserDao userDao;
public Mono<User> addUser( User user) {
return userDao.save(user);
}
}
新增完成後,返回剛剛新增成功的物件。save 方法的返回值就是 Mono。
public Flux<User> getAll() {
return userDao.findAll();
}
public Flux<User> streamGetAll() {
return userDao.findAll();
}
@DeleteMapping("/{id}")
public Mono<ResponseEntity<Void>> deleteUser(@PathVariable String id) {
return userDao.findById(id)
.flatMap(user -> userDao.delete(user).then(Mono.just(new ResponseEntity<Void>(HttpStatus.OK))))
.defaultIfEmpty(new ResponseEntity(HttpStatus.NOT_FOUND));
}
@PutMapping("/")
public Mono<ResponseEntity<User>> updateUser(@RequestBody User user) {
return userDao.findById(user.getId())
.flatMap(u -> userDao.save(user))
.map(u->new ResponseEntity<User>(u,HttpStatus.OK))
.defaultIfEmpty(new ResponseEntity(HttpStatus.NOT_FOUND));
}
相關文章
WebFlux 最為人所詬病的是資料庫的支援問題,畢竟資料是一個應用的生命,我們接觸的大部分應用程式都是有資料庫的,而 WebFlux 在這一方面的支援行一直比較弱,這也是大家總是吐槽
2021-06-18 19:33:48
在華為釋出鴻蒙系統之後,一群網友紛紛到小米創始人兼董事長雷軍微博下面催促小米採用鴻蒙系統,然而小米方面婉轉地拒絕了,就在數天後小米宣佈將以MIUI+物聯網系統velaOS走向全
2021-06-18 19:33:31
正如「萬物皆為虛、銷量才為真」這句話所言,想要看該品牌到底如何,看它的銷量就能明白。畢竟,不管廠商們有多麼吹噓自己的產品或者服務,但最後說話的也永遠都是產品的銷量。就拿
2021-06-18 19:33:12
隨著手機的普及率不斷的提高,手機儼然已經成為消費者日常生活中不可或缺的裝置之一,而手機上使用頻率最高的,應當是手機的輸入法。因為無論你是購物還是發訊息,輸入法都是必不可
2021-06-18 19:32:24
由於我國在晶片領域起步較晚,基礎較為薄弱。所以相比西方發達國家,我國晶片設計、製造水準都相對比較落後。而近兩年我國在科技產業發展迅速,晶片需求與日俱增。根據公開資料顯
2021-06-18 19:31:44
昨天,榮耀正式釋出了其新機榮耀50系列,全球首發高通驍龍778G 5G晶片,並且榮耀表示,他們比其他友商晚了45天拿到資料,結果還提前30天上市。在釋出會後,榮耀CEO趙明接受了媒體採訪。
2021-06-18 19:31:27