应用层。 api模型和内部模型之间的映射

时间:2019-03-08 06:37:47

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

我有这样的情况

我有控制器代码

@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;
        }
}

我在这里看到的层很少-其余层,业务层,持久层(假设我有几个数据源-DB和Elastic,每个都有一些存储库bean)。

我们可以看到业务层(服务)了解实体,我认为这不是很好。

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

还是创建一些额外的层适配器来管理其余模型到内部数据模型之间的映射,然后将其注入服务bean是个好主意吗?

赞赏任何好的成熟例子。

1 个答案:

答案 0 :(得分:0)

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