将业务逻辑添加到spring-data-rest应用程序

Ric*_*man 14 java spring spring-data-rest

我一直在尝试使用spring-data-rest(SDR),我对构建rest api的速度有多么深刻印象深刻.我的应用程序基于以下存储库,它为我提供了GET /附件和POST /附件

package com.deepskyblue.attachment.repository;

import java.util.List;

import org.springframework.data.repository.Repository;

import com.deepskyblue.attachment.domain.Attachment;

public interface AttachmentRepository extends Repository<Attachment, Long> {

    List<Attachment> findAll();

    Attachment save(Attachment attachment);
}
Run Code Online (Sandbox Code Playgroud)

但我有一点困惑的是我如何添加自定义业务逻辑.如果我只想在我的数据中使用rest API,SDR似乎很棒,但传统的Spring应用程序通常会有一个服务层,我可以在其中拥有业务逻辑.有没有办法用SDR添加这个业务逻辑?

ben*_*uly 6

有很多可能性。

  1. 验证器(http://docs.spring.io/spring-data/rest/docs/current/reference/html/#validation)用于验证接收到的对象。

  2. 事件处理程序http://docs.spring.io/spring-data/rest/docs/current/reference/html/#events ) 将在验证正常时调用。

  3. 当您手动想要处理请求时,自定义控制器(http://docs.spring.io/spring-data/rest/docs/current/reference/html/#customizing-sdr.overriding-sdr-response-handlers)。

  • 1 和 2 没有帮助,因为您无法修改模型。第 3 种方法使 spring 数据休息使用毫无意义,因为您必须从头开始编写所有内容。例如,如果我需要向 PATCH 请求添加一些业务逻辑,我将不得不从头开始编写整个 PATH 控制器方法,这非常复杂 (5认同)