我正在使用Java EE来运行我的后端系统,我有一个关于如何在创建Web服务方面对其进行适当分层的问题。
我几乎按照DDD的原则组织我的应用程序,这意味着我有一个域层,存储库层和服务层。所以服务层用@Stateless注释,它们是我的EJB。
现在,我可以发疯并使用JAX-RS框架的更多注释来注释这个服务类......但是由于以下几个原因我不知道这是否正确:
这就是我想要的某种形式。
可能还有其他缺点?
那么解决方案是什么?如果我说我创建了另一组使用JAX-RS注释进行注释的类,那么我是否正确?然后这些方法可以在内部使用服务层中EJB的方法吗?
如果有另一个webservice版本,我可以创建另一组使用其他URL和逻辑的类。还是我错了?你会如何组织这个?
答案 0 :(得分:2)
基本问题是如何组织代码以供重用。正如您所指出的,您可以:
这三个都是我的有效选择。
如果您对EJB服务的API有信心,但对Web服务的API(可能存在一些阻抗不匹配)有信心,我会选择2.
如果您对EJB服务应该做什么没有信心,那么这可能是首先要弄清楚的;)
如果您确信现在,但怀疑它将来可能会发生变化,我现在会选择最简单的解决方案1,并根据必须更改的内容在以后进行重构。申请YAGNI。