2016-12-02 41 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定義:

適配器模式是一個設計模式(也稱爲 包裝,具有裝飾圖案共享一個替代的命名),該 允許接口將現有類別的另一個 接口用作接口。它通常用於使現有類與其他 一起工作,而無需修改其源代碼。