Spring Service Bean作为Servlet

时间:2012-03-27 10:00:43

标签: spring servlets service dao

我的应用程序中有以下架构。

客户端(GWT)< - calls - > Servlet< - calls - >服务< - 来电 - >道

我想让这个架构更容易进行更改。 例如:当我想从Dao层返回一个对象的插入id时,因为我在客户端需要它,我也必须更新服务和servlet层。所以对于这个小小的改变,我必须更新所有3个层(3个类和3个接口)在6个位置进行更改。 我知道为什么我需要Dao Layer。 我也明白为什么我需要服务层。 我没有得到的是服务层也不能成为servlet的原因。目前我的所有servlet都将请求转发到服务层。

关于Java Servlets的维基百科文章说:

  

Servlet最常用于   1处理或存储从HTML表单提交的数据
  2提供动态内容,例如数据库查询的结果   3管理无状态HTTP协议中不存在的状态信息

1和2只是数据库调用,我在我的dao层中进行,服务层使得额外的业务逻辑成为可能。 3我目前没有参加会议。到目前为止我还没有登录,我只是在玩我的架构,但我认为服务层也可以处理这个问题。

我想知道这种架构变化的因素和优点:

专业人士:

  • 如果发生更改,则更新一层。

缺点

  • 服务层变得更复杂。

谢谢你的答案。

1 个答案:

答案 0 :(得分:2)

您需要servlet层,因为这是允许访问会话的内容。

此外,您不希望您的服务层需要了解有关HTTP的任何信息,因为您希望能够在其他应用程序中重用服务和DAO层(例如,如果您编写桌面应用程序重新使用这些()和需要包含servlet API在那里没有意义。

如果需要,您可以直接从servlet调用DAO层以获取简单的情况,以便不重复服务和DAO层中的方法。

servlet API具有过滤器,这些过滤器是在Web应用程序中实现安全性的好地方。

如果您已经在为Web应用程序使用Spring框架,则可以使用Spring Security