我正在处理新项目,代码一团糟。我们做了一些重构,要求之一是服务层不会导入任何 jax-rs 包。如果不完全重写 Controller 中的方法(而不是将它们按原样移动到服务中),则很难实现这一目标,因为代码就像一根紧密耦合的意大利面条。这是一个合理的要求吗?
最佳答案
您可能希望应用六角形(端口和适配器)架构原则来分离高层关注点,例如:
- 应用服务层,包含应用服务接口(interface)及其实现。
- 包含 Controller 接口(interface)(取决于 JAX-RS API)及其实现(取决于 Jersey 等 JAX-RS API 实现)的开放主机服务层:实现仅适当使用应用程序服务接口(interface)。
我建议您引用这本书以了解更多详细信息: «Implementing Domain-Driven Design», 1st Edition, Vaughn Vernon 。考虑使用关键字:“应用程序服务”、“开放主机服务”、“六角形”、“端口和适配器”。
关于java - 在服务类中导入 jersey 和 jax-rs 是否被认为是不好的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45566381/