【问题标题】:Log, database and mail support in Java desktop appsJava 桌面应用程序中的日志、数据库和邮件支持
【发布时间】:2012-08-24 09:03:39
【问题描述】:

我是一名 Java EE 开发人员,我们通常使用 Weblogic 来部署我们的应用程序。现在我面临一个新的桌面应用程序,它需要日志记录、数据库连接和邮件。

经过一番调查,我意识到桌面应用程序对我来说是一个全新的世界,我不确定我是否选择了正确的库来支持我的应用程序。

这些是我的问题:

  1. 在我们的 Weblogic 项目中,我们使用了 Log4j,我想在我的桌面应用程序中再次使用它。这是个坏主意吗?我应该使用更好的日志框架吗?

  2. 在 Weblogic 中,我们使用 JNDI 检索数据库连接,但现在似乎不可能这样做。如何在桌面应用程序中执行相同的操作,以便连接远程数据库? c3p0 + 数据库驱动的组合是解决这个问题的好方法吗?

  3. 是否有任何框架/JAR 提供所有这些东西(日志 + ddbb + 邮件)作为集成解决方案?同事告诉我Spring 可以提供帮助。我还找到了Warework

【问题讨论】:

    标签: java jakarta-ee log4j desktop-application c3p0


    【解决方案1】:

    在我们的 Weblogic 项目中,我们使用了 Log4j,我想在 我的桌面应用程序。这是个坏主意吗?我应该使用更好的日志记录吗 框架?

    不,这不是一个坏主意,而且效果很好。就个人而言,我会选择java.util.logging,因为它可以很好地完成工作,并且可以减少应用程序的占用空间(存储)。虽然,它的配置有点棘手。

    在 Weblogic 中,我们使用 JNDI 检索数据库连接,但现在它 似乎不可能做同样的事情。如何在 a 中执行相同的操作 桌面应用程序,以便我可以连接远程数据库?是个 结合 c3p0 + 数据库驱动程序是一个很好的方法吗?

    您可以使用纯java.sql JDBC API(互联网上提供大量示例)直接连接到您的数据库,但始终必须将专有数据库驱动程序作为应用程序的一部分(mySQL、Oracle、DB2 等)分发。 )。此外,可以通过使用它们的专有 API(相当容易封装)直接使用这些驱动程序提供的连接池。尽管如此,还是有很多问题:

    1. 延迟;数据库协议在延迟(客户端和数据库服务器之间的距离)方面相当敏感。在英国拥有数据库并在美国拥有桌面客户端可能不是一个好主意。
    2. 安全1;您必须将数据库用户凭据分发给每个桌面客户端。请注意这一点。
    3. 安全 2;您的数据库安全要求可能需要传输安全(数据包加密)。
    4. 变更管理;将非向后兼容的更新应用到您的数据库需要您更新所有桌面客户端(相信我,这并不好玩)。
    5. 网络;根据您的环境,某些端口和/或协议可能会被阻止。

    是否有任何框架/JAR 提供所有这些东西(log + ddbb + 邮件)作为集成解决方案?同事告诉我 Spring 可以提供帮助。 我也找到了Warework。

    日志和数据库访问不是问题,并且在没有任何第三方框架的情况下运行良好。当然,这些框架可能会在其他方面(抽象、DI、JDBC 抽象等)提供价值,但这是详细软件设计的主题。无论使用何种框架,直接从桌面应用程序发送电子邮件都可能成为问题。只是要记住一些事情:

    1. 您要使用哪个 SMTP 中继服务器?
    2. 在企业环境中,您的 IT 运营团队可能不允许您从每个桌面使用他们的 SMTP 服务器(谨记垃圾邮件)。

    结论:在桌面场景中,应用服务器也不是一个坏主意。您应该让您的桌面应用程序仅通过使用例如与应用程序服务器进行通信。 JSON、XML、SOAP over HTTP/HTTPS 或 RMI 等。应用程序应负责数据库访问、事务管理、细粒度安全性、电子邮件等复杂任务。

    【讨论】:

    • 非常感谢您快速而详细的回复!我与系统部门开会,他们向我解释了为什么 JNDI 不起作用(基本上,端口已关闭)。他们还告诉我邮件不是问题,因为要创建的新应用程序将安装在两台受控制的机器上。我快速尝试了 Spring,但这对我来说太多了。 Warework 看起来要容易得多(顺便说一下很好的例子),但是对于我的第一个桌面应用程序,我会尝试我知道的技术,所以这是我的最终选择:log4j + ddbb 驱动程序(专有连接池)+ JavaMail。
    猜你喜欢
    • 1970-01-01
    • 2013-03-14
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2018-08-20
    相关资源
    最近更新 更多