使用spring设计具有视图,Web服务和调度程序的N层Java EE Web应用程序

时间:2011-10-23 06:37:40

标签: java web-services java-ee architecture n-tier-architecture

我有一个使用Spring和Hibernate的启动Web应用程序,目前有3层。查看,服务和DAO。它也是域对象分开隔离的。

Existing package structure

为此,我想添加 webservice和scheduler 。现在我应该添加这些类?或者我应该为这些创建新的包? n层Web应用程序的最佳实践是什么?

请分享您的想法和经验。

2 个答案:

答案 0 :(得分:3)

Web和调度程序包?

这个问题没有“正确”的答案,而且对于你的包装布局没有任何想法超出所显示的内容,很难更具体。

只要它在上下文中有意义,并且它是一致的,无论如何它总是无关紧要。在您在原始功能和新功能中识别和重构功能后,您可能会发现现有结构发生了变化。

答案 1 :(得分:2)

一些想法:

  1. 包不是一个层。层(或层)是相关功能集合的逻辑抽象,包是编译单元的物理分组工具。可能的情况是,用于实现逻辑层的所有类都驻留在同一个源包中,但并不要求是这种情况。

  2. 似乎webservice很适合service包,或者可能是service中名为web的子包。

  3. 对于调度程序,它也可能属于service包中的某个位置(特别是如果其他组件是通过服务API与调度程序连接)。如果没有,那么接下来最合适的事情就是给它自己的包scheduler

  4. 至于最佳实践,只做1)工作,2)有意义。 “n层Web应用程序”是一个如此广泛的主题,以至于没有任何特定的答案适用于所有可能的情况。