2012-05-30 33 views
0

請幫助我爲我的任務選擇正確(穩定和安全)的方法。我在Apache Tomcat上使用Spring MVC實施了Web應用程序。Web應用程序需要打開套接字並支持一些協議

爲了提供一些服務,我需要通過網絡連接到外部應用程序。此外,我必須使用此軟件支持特定的網絡協議。

在這種情況下,我的網絡應用程序是一個客戶端,外部應用程序是一個服務器。而且,外部應用程序可以在很多情況下運行,所以我的網絡應用程序必須打開很多套接字。

每個連接應該被異步支持,所以它似乎應該爲每個連接創建一個線程。

我想我可以爲Spring的調度器servlet創建一個ContextListener,並實現生命週期的事件:init和destroy。所以在這裏我可以在初始化階段創建並啓動我的奇特服務,並在銷燬階段關閉它。

我意識到我的解決方案可能不夠準確。可能是我應該使用TaskExecuter或其他東西。我很想知道你會給我什麼建議。

非常感謝!

回答

0

由於您已經在使用Spring MVC,因此使用Spring的lifecycle callbacks來執行初始化和清理可能會更容易。

您可以爲每個外部對等(或多個具有不同配置設置的多個配置設置,如果它們完全相同的話)創建一個singleton服務bean,並將它們用作標準的Spring管理服務。

+0

謝謝!你給了我一個好方法。 –

0

你爲什麼要爲它做一個服務? Web應用程序(客戶端)可以簡單地用一個抽象控制器來調用外部應用程序/請求數據,並顯示在瀏覽器的響應,在任何給定的情況下...

請具體談談你正在嘗試做

+0

感謝您的回答! Web應用程序與外部應用程序之間的交互正受到具有自己的場景和狀態機的特定協議的支持。這個協議沒有用請求 - 響應模型實現。用戶只能觀看通過此協議收集的一條信息。 您的意思是'AbstractController',是關於Spring MVC的控制器嗎? –

相關問題