Spring Boot2 系列教程Spring Boot 构建 RESTful 风格应用
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@RestController
@RequestMapping("/api/v1/books")
public class BookController {
private final BookService bookService;
@Autowired
public BookController(BookService bookService) {
this.bookService = bookService;
}
// 获取所有图书
@GetMapping
public Flux<Book> getAllBooks() {
return bookService.findAll();
}
// 根据ID查询图书
@GetMapping("/{id}")
public Mono<Book> getBookById(@PathVariable("id") String id) {
return bookService.findById(id);
}
// 创建新图书
@PostMapping
public Mono<Book> createBook(@RequestBody Book book) {
return bookService.create(book);
}
// 根据ID更新图书
@PutMapping("/{id}")
public Mono<Book> updateBook(@PathVariable("id") String id, @RequestBody Book book) {
book.setId(id);
return bookService.update(book);
}
// 根据ID删除图书
@DeleteMapping("/{id}")
public Mono<Void> deleteBook(@PathVariable("id") String id) {
return bookService.deleteById(id);
}
}
这个代码示例展示了如何使用Spring WebFlux框架创建RESTful风格的控制器。它使用了@RestController
注解,并且通过@GetMapping
、@PostMapping
等注解定义了HTTP方法的路由。代码中使用了Reactor的Mono
和Flux
来处理异步的数据流。这是Spring WebFlux推荐的响应式方式,适合于处理大量的数据和高并发的场景。
评论已关闭