Spring Data REST: 在控制器上重新定义存储库方法
我有以下存储库 REST, 执行在执行期间生成 Spring.
这意味着我会有 save//, find//, exists// 和其他方法可用和开放 REST.
现在我想覆盖其中一个方法; 例如, save//. 为此,我会创建一个提供此方法的控制器,例如:
问题:
如果我打开这个控制器,那么实现所有其他方法 Spring, 不再可用。 因此,例如,我再也不能提出请求 GET 在 /foo/1
问题:
有没有办法覆盖方法 REST, 同时保持其他自动生成的方法 Spring?
附加信息
:
这个问题似乎非常相似:
https://coderoad.ru/28455208/
..., 但我不想改变这样的方式 /foo/1/save
我想使用 @RepositoryEventHandler, 但我并不像这个想法,因为我想把它封装在服务中。 此外,您似乎对交易的背景失去了控制。
http://docs.spring.io/spring-d ... dlers
Spring 以下说:
有时您可能需要为特定的定制处理程序编写自定义处理程序
资源。 利用设置 Spring Data REST,
消息转换器,异常处理和可用力,使用
注解 @RepositoryRestController 而不是标准 Spring MVC
@Controller 或者 @RestController
所以它似乎应该开箱即用,但不幸的是,没有。
</foo,>
@RepositoryRestResource
public interface FooRepository extends CrudRepository<foo, long=""> {
}
这意味着我会有 save//, find//, exists// 和其他方法可用和开放 REST.
现在我想覆盖其中一个方法; 例如, save//. 为此,我会创建一个提供此方法的控制器,例如:
@RepositoryRestController
@RequestMapping/"/foo"/
public class FooController {
@Autowired
FooService fooService;
@RequestMapping/value = "/{fooId}", method = RequestMethod.PUT/
public void updateFoo/@PathVariable Long fooId/ {
fooService.updateProperly/fooId/;
}
}
问题:
如果我打开这个控制器,那么实现所有其他方法 Spring, 不再可用。 因此,例如,我再也不能提出请求 GET 在 /foo/1
问题:
有没有办法覆盖方法 REST, 同时保持其他自动生成的方法 Spring?
附加信息
:
这个问题似乎非常相似:
https://coderoad.ru/28455208/
..., 但我不想改变这样的方式 /foo/1/save
我想使用 @RepositoryEventHandler, 但我并不像这个想法,因为我想把它封装在服务中。 此外,您似乎对交易的背景失去了控制。
http://docs.spring.io/spring-d ... dlers
Spring 以下说:
有时您可能需要为特定的定制处理程序编写自定义处理程序
资源。 利用设置 Spring Data REST,
消息转换器,异常处理和可用力,使用
注解 @RepositoryRestController 而不是标准 Spring MVC
@Controller 或者 @RestController
所以它似乎应该开箱即用,但不幸的是,没有。
</foo,>
没有找到相关结果
已邀请:
4 个回复
三叔
赞同来自:
仔细研究文档中的示例:虽然它显然不禁止比较类级查询,但它使用方法级别的请求比较。
我不确定这是否是所需的行为或错误,但据我所知,这是使其工作的唯一方法
https://jira.spring.io/browse/DATAREST-535
.
只需将控制器更改为:
</void>
龙天
赞同来自:
:
从
, 展示腰带 CRUD 结束点
:
和
, 哪个覆盖终点形状
默认
.:
如果你打电话
, 您将获得以下输出,该输出使用实现布局:
只是为了完整的图片 POM 它可以配置为以下父级和依赖项:
</page<account></account></account></account></account></account,></integer>
窦买办
赞同来自:
辉煌地说 @mathias-dpunkt 在这个答案中
最重要的是 RepositoryRestController 知道O. spring 数据 rest
基本路径,将根据这种基本方式提供服务。
所以,如果你的基本方式 "/api " 你使用 @RepositoryRestController
你必须省略 "/api " 的 @RequestMapping
莫问
赞同来自:
</s></foo,>