将Swing应用程序转换为3层应用程序

时间:2013-10-26 09:19:03

标签: java mysql swing

一年后,我完成了应用程序的开发。 现在,在搜索互联网时,我获得了有关3tiers应用程序的新知识。

我的应用程序在2tier架构上运行(独立应用程序直接连接到数据库服务器)。

我的应用程序开发使用: - Java SE(Swing)。 - MySQL Server作为数据库服务器。

我想将我的应用程序重建为3tier应用程序。 (客户端服务器) - 我必须使用什么技术? - 我目前的代码中需要更改什么? - 应用程序将在网络上运行,将有许多并发用户将使用访问数据库的应用程序(插入,更新,删除等)。

2 个答案:

答案 0 :(得分:0)

Java EE是你的答案。你可以选择像Hibernate / Spring / Struts这样的框架来构建一个3层架构(MVC)。你还需要为servlet容器做出选择.Apache Tomcat应该是一个不错的选择

如果您可以发布更多细节,例如应用程序的复杂性,目的等,那就太好了。

答案 1 :(得分:0)

主要有两种方法。第一个涉及在许多可用框架之一(Struts,Spring,Java Server Faces等)的帮助下用HTML / JavaScript重写客户端。除非您特别喜欢Web应用程序到Swing应用程序,否则您的用户界面非常在您的业务逻辑之上的薄层,那么这是一种代价高昂的方法。

第二种方法是在用户界面和数据库之间插入服务器。基于Java的开源服务器包括Jetty,Tomcat,Spring,JBoss / WildFly和GlassFish。

如果您的代码是分层结构的,那么用户界面,业务逻辑和数据访问代码属于不同的层,那么一旦您理解了,那么从双层系统转换为三层系统应该是直截了当的您选择的中间层服务器的功能以及如何使用它们。

基本技术是:

  1. 所有用户界面/ Swing代码都保留在客户端上。
  2. 所有业务逻辑都转移到中间层服务器。客户端使用远程协议与业务逻辑进行通信。
  3. 将所有数据访问代码移至服务器。
  4. 依赖注入对于逐步执行此重构很有用,并且如果需要,还允许您在两层或三层模式中进行选择。

    双层和三层应用程序之间的三个主要区别是:

    1. 安全性 - 系统中有一个新的访问点。您需要注意它对数据库的访问权限 - 您是否有一个服务器用户可以执行所有操作,或者每个用户是否需要使用自己的连接凭据。您还需要正确保护服务器,并注意不要在中间层API中添加安全漏洞。
    2. 远程访问 - 现在在网络上进行以前在同一进程中进行的一些方法调用。服务器API通常需要支持比本地API更少的细粒度操作,并且可能还需要管理作为参数和返回值传送的数据量。
    3. 您的应用程序结构变得更加重要。代码不一定非常不同,但需要将其组织到不同的层中。