我有这样的情况
我有控制器代码
@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?
欣赏任何好的成熟例子。
我认为,它可以在控制器级别上完成,例如here。纠正我如果我错了。