假设我必须保存一个实体,在本例中为 Book。我有下一个代码:
@RestController
@RequestMapping("books")
public class BookController {
@Inject
BookRepository bookRepository;
@PostMapping
public Book saveBook(@RequestBody Book book) {
return bookRepository.save(book);
}
}
Run Code Online (Sandbox Code Playgroud)
我的实体 Book 是一个持久性实体:
@Entity(name = "BOOK")
public class Book{
@Id
@Column(name = "book_id")
private Integer id;
@Column(name = "title")
private String title;
(get/sets...)
}
Run Code Online (Sandbox Code Playgroud)
问题是:在@RequestBody控制器层使用我的持久性实体是一种不好的做法吗?或者我应该创建一本书 DTO 并将其映射到服务层中的持久性类?什么更好,为什么?
我在 Spring Reactive 应用程序中工作。我知道如何使用 HttpServletRequest 在拦截器中获取 PathVariable,有些类似:
request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
Run Code Online (Sandbox Code Playgroud)
但我们必须进行一些更改,现在我们有了 WebFilter 实现,因此我们不使用 HttpServletRequest,而是使用 ServerWebExchange
如何从 ServerWebExchange 获取 Pathvariable?这是可能的?