Spring WebFlux快速入门
时间: 2023-06-19 17:09:40 浏览: 192
spring web flow入门
Spring WebFlux是Spring Framework 5引入的新的响应式Web框架,它基于Reactor项目实现了响应式编程模型。相比于传统的Spring MVC框架,Spring WebFlux提供了更好的吞吐量和更低的延迟,适用于高并发场景。
下面是一个快速入门的示例:
1. 创建一个Spring Boot项目,选择Webflux和Reactive MongoDB依赖。
2. 创建一个数据模型类,比如User:
```java
public class User {
private String id;
private String name;
private int age;
// 省略getter和setter
}
```
3. 创建一个数据访问层接口和实现,使用ReactiveMongoRepository来实现MongoDB的数据访问:
```java
public interface UserRepository extends ReactiveMongoRepository<User, String> {
}
@Service
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public Mono<User> save(User user) {
return userRepository.save(user);
}
public Mono<User> findById(String id) {
return userRepository.findById(id);
}
public Flux<User> findAll() {
return userRepository.findAll();
}
public Mono<Void> deleteById(String id) {
return userRepository.deleteById(id);
}
}
```
4. 创建一个控制器类,定义接口:
```java
@RestController
@RequestMapping("/users")
public class UserController {
private final UserService userService;
public UserController(UserService userService) {
this.userService = userService;
}
@PostMapping("")
public Mono<User> save(@RequestBody User user) {
return userService.save(user);
}
@GetMapping("/{id}")
public Mono<User> findById(@PathVariable String id) {
return userService.findById(id);
}
@GetMapping("")
public Flux<User> findAll() {
return userService.findAll();
}
@DeleteMapping("/{id}")
public Mono<Void> deleteById(@PathVariable String id) {
return userService.deleteById(id);
}
}
```
5. 启动应用程序,访问http://localhost:8080/users即可测试。
以上就是一个简单的Spring WebFlux的入门示例,希望对你有所帮助。
阅读全文