【问题标题】:Application layers. Mapping between api models and internal models应用层。 api模型与内部模型的映射
【发布时间】:2019-07-30 04:12:18
【问题描述】:

我有这样的情况

我有控制器代码

@RestController
public class MyController implements SomeApi {

@Autowired
private final MyService myService ;

 public ResponseEntity<AnswerObject> getSomething (RestModelObject obj) {
    myService.getSomething(obj);
}

以下服务代码:

@Service
public class MyServiceImpl implements MyService {

@Autowired
private final EntityRepository entityRepository;

 public AnswerObject getSomething (RestModelObject obj) {
        Entity entity = entityRepository.getSomething(obj);
        AnswerObject answerObject = map(entity, new AnswerObject());
        return answerObject;
        }
}

我可以看到这里有几层 - 休息层、业务层、持久层(假设我有几个数据源 - 数据库和弹性,每个都有一些存储库 bean)。

正如我们所见,业务层(服务)了解实体,我认为这并不是很好。

那么问题是这种情况的最佳做法是什么? 映射应该发生在持久层上?

或者创建一些额外的层适配器来负责将其余模型映射到内部数据模型并将其注入服务 bean 是个好主意吗?

欣赏任何好的成熟例子。

【问题讨论】:

    标签: rest spring-boot design-patterns architecture software-design


    【解决方案1】:

    我认为,它可以在控制器级别上完成,例如 here。如果我错了,请纠正我。

    【讨论】:

      猜你喜欢
      • 2017-10-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      相关资源
      最近更新 更多