2016-12-02 39 views
1

我在Servlets和JSP中有一个Web应用程序。现在我需要为其中的几个服务方法添加一些附加功能。那些需要这些更改的服务方法来自不同的servlet。为现有方法添加附加功能

其他功能如下。

  1. 验证其核心功能之前的状态。
  2. 通知相应的用户成功完成该过程。

如何以最小开销将这些功能注入现有代码? 我认为春季AOP可以帮助这里,但我不能在现有的应用程序中使用Spring功能。

还试图使用装饰模式,但我不能作为每个服务类包含多个方法,也没有他们的共同接口。

有人可以让我知道如何以更好的方式处理这种变化。

+0

如果你不能使用Spring,它只是一个普通的Servlet项目,也许你可以写一个Filter?你可以在你的web.xml中设置它,这意味着你有机会运行每个请求的代码。请参阅http://www.oracle.com/technetwork/java/filters-137243.html – BretC

回答

0

还试图用Decorator模式,但我不能,因为每个服务 类包含多个方法,也没有共同的界面 他们。

正如你指出存在没有通用接口您可以使用适配器模式这是最适合当你有服务接口的问题。基本上,适配器有助于与没有通用接口的两种服务进行交互。您可以创建一个通过调用现有服务来处理附加功能(即,验证状态并通知相应用户等)的适配器(层)。

下面是适配器模式 Wikipedia定义:

适配器模式是一个设计模式(也称为 包装,具有装饰图案共享一个替代的命名),该 允许接口将现有类别的另一个 接口用作接口。它通常用于使现有类与其他 一起工作,而无需修改其源代码。