簡體   English   中英

Java桌面應用程序中的日志,數據庫和郵件支持

[英]Log, database and mail support in Java desktop apps

我是Java EE開發人員,我們通常使用Weblogic來部署我們的應用程序。 現在,我面對一個需要日志記錄,數據庫連接和郵件的新桌面應用程序。

經過一番調查,我意識到桌面應用程序對我來說是一個全新的世界,我不確定是否要選擇合適的庫來支持我的應用程序。

這些是我的問題:

  1. 在我們的Weblogic項目中,我們使用了Log4j,我想在我的桌面應用程序中再次使用它。 這是一個壞主意嗎? 我應該使用更好的日志記錄框架嗎?

  2. 在Weblogic中,我們使用JNDI檢索數據庫連接,但是現在似乎無法做到這一點。 如何在桌面應用程序中執行相同的操作,以便可以與遠程數據庫連接? c3p0 +數據庫驅動程序的組合是否是一個好的方法?

  3. 是否有任何框架/ JAR可以提供所有這些東西(日志+ ddbb +郵件)作為集成解決方案? 同事們告訴我, Spring可以幫助您。 我還找到了Warework

在我們的Weblogic項目中,我們使用了Log4j,我想在我的桌面應用程序中再次使用它。 這是一個壞主意嗎? 我應該使用更好的日志記錄框架嗎?

不,這不是一個壞主意,並且可以正常工作。 就個人而言,我會使用java.util.logging因為它可以很好地完成工作,並且可以減少應用程序的占用空間(存儲)。 雖然,它的配置有些棘手。

在Weblogic中,我們使用JNDI檢索數據庫連接,但是現在似乎無法做到這一點。 如何在桌面應用程序中執行相同的操作,以便可以與遠程數據庫連接? c3p0 +數據庫驅動程序的組合是否是一個好的方法?

您可以使用純java.sql JDBC API(Internet上有大量示例)直接連接到數據庫,但始終必須將專有數據庫驅動程序作為應用程序的一部分(mySQL,Oracle,DB2等)進行分發。 此外,可以通過使用它們的專有API(相當容易封裝)直接使用那些驅動程序隨附的連接池。 盡管如此,仍然存在許多問題:

  1. 潛伏; 對於延遲(客戶端與數據庫服務器之間的距離),數據庫協議非常敏感。 在英國擁有數據庫而在美國擁有台式機客戶可能不是一個好主意。
  2. 安全1; 您必須將數據庫用戶憑據分發給每個桌面客戶端。 注意這一點。
  3. 安全2; 您的數據庫安全要求可能需要傳輸安全性(數據包加密)。
  4. 更換管理層; 對數據庫應用非向后兼容更新要求您更新所有桌面客戶端(相信我-這很有趣)。
  5. 網絡; 根據您的環境,某些端口和/或協議可能會被阻止。

是否有任何框架/ JAR可以提供所有這些東西(日志+ ddbb +郵件)作為集成解決方案? 同事們告訴我,Spring可以幫助您。 我還找到了Warework。

日志記錄和數據庫訪問不是問題,並且在沒有任何第三方框架的情況下也可以很好地工作。 當然,這些框架可能會提供有關其他方面(抽象,DI,JDBC抽象等)的價值,但這是詳細軟件設計的主題。 無論使用哪種框架,直接從桌面應用程序發送電子郵件都可能成為問題。 請記住以下幾點:

  1. 您要使用哪個SMTP中繼服務器?
  2. 在企業環境中,您的IT運營團隊可能不允許您從每個桌面使用他們的SMTP服務器(請注意垃圾郵件)。

結論:在桌面方案中,應用程序服務器也不是壞主意。 您應該讓桌面應用程序僅通過使用JSON,XML,HTTP / HTTPS或RMI上的SOAP等與應用程序服務器進行通信。應用程序應負責復雜的任務,例如數據庫訪問,事務管理,細粒度的安全性,電子郵件等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM