0

由于安全原因,我们的遗留应用程序被拆分为 2 个 Web 应用程序,一个应用程序用于前端,另一个应用程序用于业务逻辑和数据库交互,即中间层。我现在正在使用带有 JSTL 的 Spring MVC 重新设计这个应用程序。教程示例适用于 1 个应用程序。

我应该怎么做才能配置这个在单独的战争中使用 JSP 的 Spring 应用程序?

4

3 回答 3

1

两个主要选项:

  • 以 jar 的形式提供业务逻辑并从控制器中使用它。
  • 以 SOA 应用程序的形式提供业务逻辑。

我不清楚为什么业务逻辑和数据库交互需要是一个单独的Web应用程序,而不是库。如果它们被部署在同一台服务器上,那就更不清楚了。

如果它们被部署在不同的服务器上,那么您基本上是从“前端”应用程序向“API”应用程序进行服务调用。有很多方法可以做到这一点,甚至可能是 EJB-ish,尽管如果您使用 Spring,我怀疑您正试图避免这种情况(尽管使用 JEE6,这样做的理由要少得多)。

于 2012-05-03T15:48:16.920 回答
0

Dave 建议的第一个选项也是我们通常这样做的方式:创建一个Maven 多模块项目,其中将业务服务构建为 Web 层所依赖的简单 jar 文件。通过这种方式,您可以在两个层之间进行清晰的分离,并可能使用不同的“顶部”重用业务逻辑,例如,使用 Swing 客户端而不是 Web 应用程序。

当然,这在不使用 Maven 时也是可能的——您可以将源文件保存在单独的文件夹中,并让 Ant(或任何您喜欢的工具)构建可交付成果。

于 2012-05-03T16:01:49.977 回答
0

我会这样走:

  • 第一个 WAR 包含 JSP 和所有 Web 组件,包括图像、CSS 和 JavaScript。
  • 第二个 WAR 包含 Spring MVC 控制器和服务/DAO 层。控制器负责调用服务对象并将响应解析为 JSON 或 XML。

使用该架构,您的第一个 WAR 通过 AJAX 调用访问第二个 WAR 服务。这意味着大量使用 JavaScript:也许您可以使用 JQuery 来帮助您。

此外,这种方法允许您在不同的容器中部署 WAR。甚至第一个 WAR 根本不可能是 WAR,它甚至可能是部署在 Apache 中的 PHP 应用程序或纯 HTML/JS 网页。

于 2012-05-03T16:32:17.580 回答