有两种主要方法。第一个涉及在许多可用框架(Struts、Spring、Java Server Faces 等)之一的帮助下用 HTML/JavaScript 重写客户端。除非您特别喜欢 Web 应用程序而不是 Swing 应用程序,或者您的用户界面非常在您的业务逻辑之上的薄层,那么这是一种昂贵的方法。
第二种方法涉及在用户界面和数据库之间插入服务器。基于 Java 的开源服务器包括 Jetty、Tomcat、Spring、JBoss/WildFly 和 GlassFish。
如果您的代码是分层结构的,以便用户界面、业务逻辑和数据访问代码属于不同的层,那么一旦您了解了您的功能,从两层系统转换到三层系统应该很简单。选择的中间层服务器以及如何使用它们。
基本技术是:
- 所有用户界面/Swing 代码都保留在客户端上。
- 所有业务逻辑都转移到中间层服务器。客户端使用远程协议与业务逻辑对话。
- 所有数据访问代码都移至服务器。
依赖注入对于逐步执行此重构很有用,并且还允许您在需要时选择在两层或三层模式下工作。
两层和三层应用程序之间的三个主要区别是:
- 安全性 - 您的系统中有一个新的访问点。您需要注意它对数据库的访问权限 - 您是否有一个服务器用户可以做所有事情,或者每个用户都需要使用自己的连接凭据。您还需要正确保护服务器,并注意不要在中间层 API 中添加安全漏洞。
- 远程访问——以前在同一进程中进行的一些方法调用现在通过网络进行。与本地 API 相比,服务器 API 通常需要支持较少细粒度的操作,并且可能还需要管理作为参数和返回值传送的数据量。
- 应用程序的结构变得更加重要。代码不一定有很大不同,但需要将其组织到不同的层中。