- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Spring Boot 应用程序中有一个 Payment 实体。考虑到所有可能的 CRUD 操作,我使用 Spring Data Rest 进行读取,并希望实现自定义的创建操作。此外,此实体不允许删除
和更新
。
所以这是我想要的 URL 和每个 URL 的责任组件:
获取/付款
:PaymentRepository
GET/payments/{id}
:PaymentRepository
POST/付款
:PaymentController
这是我的存储库:
@RepositoryRestResource
public interface PaymentRepository extends PagingAndSortingRepository<Payment, Long> {
// disable create and update
@Override
@RestResource(exported = false)
Payment save(Payment entity);
// disable delete
@Override
@RestResource(exported = false)
void delete(Payment entity);
}
这是我的 Controller :
@RepositoryRestController
@RequestMapping("/payments")
public class PaymentController {
@PostMapping("")
@ResponseBody
public Payment create() {
// some code...
}
}
如果我将 create
操作映射到 POST/payments/create
这样的网址,一切正常,但如果我使用上面的代码并映射 create
到 POST/payments
,GET/payments
网址不再起作用,并且我收到 405 Method Not Allowed
错误。 (GET/payments/{id}
仍在工作)
在这种情况下,似乎存在 @PostMapping("")
注释,导致 PaymentController
响应 GET/payments
请求并它失败了。
我希望我的解释很清楚。我该如何解决这个问题?
最佳答案
Sometimes you may want to write a custom handler for a specific resource. To take advantage of Spring Data REST’s settings, message converters, exception handling, and more, use the
@RepositoryRestController
annotation instead of a standard Spring MVC @Controller or @RestController.
没有明确提及,但用 @RepositoryRestController
注释你的 Controller 还允许您为一个端点定义自定义行为,同时保留 Spring 自动生成的所有其他端点...在一种情况下:@RequestMapping
注释只能在method level处使用(这实际上是引用文档示例中所做的)。
你的例子变成:
@RepositoryRestController
public class PaymentController {
@PostMapping("/payments")
@ResponseBody
public Payment create() {
// some code...
}
}
这样,您就可以将自定义端点映射到 POST /payments
请求,加上 Spring 自动生成的所有端点,减去 @RestResource(exported = false)
注释的端点.
关于java - Spring Boot 中单个资源使用 @RepositoryRestController 和 @RepositoryRestResource 的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48815581/
我想在我的 @RepositoryRestController 中使用 javax 注释 @Valid 验证我的 DTO。然而,@RepositoryRestController 当前不支持 @Val
假设我有 2 个必须实体: @Entity public class Post { @NotEmpty private String title; @NotEmpty
我正在使用 Spring-data-rest 为某些 JPA 实体提供读取 API。对于写入,我需要发出命令对象而不是直接写入数据库,因此我使用 @RepositoryRestController 和
我想知道使用注解 @RepositoryRestController 到底有什么区别?和 @Repository因为我都试过了,我发现完全没有区别! 我尝试了以下方法: @RepositoryRest
我需要你帮助解决一个有趣的问题:我想使用 swagger 来轻松编写 API 文档,并且我有两个类:versionController 和 PersonController。版本 Controller
我有一个 RepositoryRestController为一些持久实体公开资源。 我的 Controller 上有一个方法需要一个 PersistentEntityResourceAssembler
我里面有一个 @RepositoryRestController @RequestMapping(value = "/products/salesReport", method = RequestMe
我有一个使用 @PageableDefault 注释的自定义 Controller 。我在我的类上使用了 @Controller 注释,但是,我想让这个 Controller 以 HATEOAS 响应
当我创建 @RepositoryRestController对于实体,关联的 @RepositoryEventHandler方法不是通过 Spring Boot 1.4.0.M3(也是 Spring
我正在使用 Spring Boot、Spring Data REST、Spring HATEOAS、Hibernate。我正在尝试创建一个 Controller 来从服务器下载文件。 我的 Contr
我想使用设置了 SDR 基本路径的 @RepositoryRestController 覆盖 @RepositoryRestResource 自动生成的 Controller 方法 到“/api”。
我的问题是从 URI 字符串反序列化实体。当我使用由 Spring Data Rest 生成的 HTTP 接口(interface)时,一切正常。我可以针对我的端点 /api/shoppingList
我遇到了一个奇怪的问题。在我的 Spring 应用程序中,我有一个 Controller ,它在数据库中保存一条记录。 @RepositoryRestController @RequestMappin
我的 Spring Boot 应用程序中有一个 Payment 实体。考虑到所有可能的 CRUD 操作,我使用 Spring Data Rest 进行读取,并希望实现自定义的创建操作。此外,此实体不允
我正在尝试实现自定义 Controller 来处理自定义存储库中定义的方法,以便能够使用此方法通过 REST 公开资源(根据 Implementing custom methods of Spring
我使用其对应的实体存储库编写了一个自定义 RepositoryRestController。在此 url 上执行请求时,查询正在我的控制台中运行,但 url 返回 404。我还能够在日志中看到此 ur
我正在尝试了解 Spring Data Rest Controller 的确切行为。 我做了一个简单的实现来测试4种带注释的 Controller :@BasePathAwareController,
我是一名优秀的程序员,十分优秀!