我遇到过这样的情况
我有控制器代码
@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;
}
}
我可以看到这里有几个层- rest层,业务层,持久层(假设我有几个数据源- DB和elastic,每个都有一些存储库bean)。
正如我们可以看到的,业务层(服务)对实体的感知,我认为这并不是很好。
因此,问题是,对于这种情况,最佳实践是什么?映射应该发生在持久层上吗?
或者,创建一些额外的层适配器来负责rest模型到内部数据模型之间的映射,并将其注入到服务bean中,这是不是一个好主意?
欣赏任何好的成熟的例子。
发布于 2019-03-10 06:23:55
我认为,它可以在控制器级别上完成,就像在示例here中一样。如果我错了,请纠正我。
https://stackoverflow.com/questions/55057947
复制相似问题