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

问题描述 投票:2回答:1

我有这样的情况

我有控制器代码

@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个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.