将 Spring MVC 应用程序从 JSP 迁移到 AngularJS

Posted

技术标签:

【中文标题】将 Spring MVC 应用程序从 JSP 迁移到 AngularJS【英文标题】:Migrating Spring MVC application from JSP to AngularJS 【发布时间】:2015-11-17 20:24:23 【问题描述】:

我正在考虑从 JSP、Struts 等服务器端渲染视图技术转移到使用 AngularJS 的客户端渲染视图技术,

适用于现代浏览器的流行 javascript 框架。

当我们进行此更改时,我可能会遇到什么。

如果有人在 Spring Web MVC 和 JSP 开发方面有经验并且知道 Spring MVC 如何与 AngularJS 等客户端 Javascript 一起工作。

请回答。

【问题讨论】:

请参考此链接获取 spring rest web 服务支持。 [spring.io/guides/gs/rest-service/]。大多数像angular这样的js框架都将数据传输为json。 【参考方案1】:

您必须使用 angularJS 重写视图部分,并用 REST API 替换来自服务器的逻辑。

这通常是一项巨大的工作,最难的部分是将现有的服务器端会话管理迁移到浏览器,因为 REST API 是无状态的。

【讨论】:

【参考方案2】:

以下是我最近使用 AngularJs 作为客户端 java-script 框架在单页应用程序中迁移现有 Spring MVC Web 应用程序的建议方法之一:

1).首先,如果尚未完成,您需要将必须在 DB 层处理的核心业务逻辑一分为二。即 SP、触发器等...

2).那么对于 Toilal 提到的最难的事情(“将现有的服务器端会话管理迁移到浏览器,因为 REST API 是无状态的”),您可以考虑 Spring引导作为快速构建事物的选项之一,而不是 Spring MVC,它融合了 java8 特性以通过 API 产生 JSON 响应。

3). 最后但并非最不重要的一点是,在前端使用 AngularJS 构建 UI 层,封装 Spring Boot API 返回的数据。请注意,由于 Angular 功能强大,您可以在客户端完成大部分业务逻辑,您的 DB 层只需要为您提供整堆业务数据来渲染屏幕,其他事情您可以轻松地在 Angular 中处理。 因此,通过这种方式,通过使 DB 层变薄并在前端吸收角度,您可以显着提高现有应用程序的性能。

您还可以在同一上下文中查看这个AngularJS with Spring-mvc 有用的线程。

【讨论】:

以上是关于将 Spring MVC 应用程序从 JSP 迁移到 AngularJS的主要内容,如果未能解决你的问题,请参考以下文章

从 jsp 访问 Spring MVC DI bean

Spring Boot - 放置 jsp 文件的位置

Spring MVC 从 2.5 到 3.0

无法使用 Spring Boot 和 MVC 找到/渲染 JSP 文件

Spring MVC 从jsp页面传值到Controller方法里

如何将 Spring Boot 项目迁移到旧 Spring MVC 项目。面临的问题,如何在遗留 Spring MVC 项目中读取 application.properties 文件