如何在两个单独的战争中构建一个Spring框架Web应用程序,一个用于前端(jsp),另一个用于业务逻辑?

时间:2012-05-03 15:33:28

标签: java spring jsp spring-mvc

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

如何在单独的战争中配置使用JSP的Spring应用程序?

3 个答案:

答案 0 :(得分:1)

两个主要选项:

  • 将业务逻辑作为jar提供,并从控制器中使用它。
  • 将业务逻辑提供为SOA应用程序。

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

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

答案 1 :(得分:0)

Dave建议的第一个选项也是我们通常采用的方式:创建一个Maven multi-module project,其中业务服务构建为Web层所依赖的简单jar文件。通过这种方式,您可以在两个层之间实现清晰的分离,并可能使用不同的“顶部”重用业务逻辑,例如: G。摇摆客户端而不是网络应用程序。

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

答案 2 :(得分:0)

我会这样走:

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

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

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