2012-10-18 72 views
1

在我的大多數(全部)servlets中,init方法是類似的。晴初始化DataSourceJava Servlet擴展另一個Servlet

我想創建一個BaseServlet具有保護DataSource和實施init方法和所有其他的Servlet擴展這個BaseServlet的。

任何我應該警惕的問題?

+0

您可以考慮宣佈你的資源需求在部署描述符,而不是創建基本的servlet。我認爲這將是一個更清潔的方法 – Sujay

回答

1

在目前的方案:

  1. 每個Servlet的擴展BaseServlet會創建自己的數據源作爲init()方法將被調用多次。
  2. 我認爲這不是你想要完成的,你正在尋找一個單獨的數據源來跨越所有的Servlet。

上述假設是真的,我會建議以下

  1. 包裝你的數據源中的一個單獨的類。這將確保數據源只初始化一次。使用eager initialization,以確保數據源是在類負載本身
  2. 使用這個類來獲得你的servlet類的數據源/連接initalized。
1

如果你只需要初始化數據庫相關的東西,你可以把寫入ServletContext,我沒有那麼多的類繼承的樂趣。

時下,似乎我們不只是從servlet的開始,爲什麼不選擇一個框架?

相關問題