8.5 小结

并不是所有的 Web 应用程序都是自由访问的。有时候,必须对用户进行指引、询问适当的问题并基于他们的响应将其引导到特定页面。在这些情况下,应用程序不太像一个菜单选项而更像应用程序与用户之间的对话。

在本章中,我们介绍了 Spring Web Flow,它是能够构建会话式应用程序的 Web 框架。在介绍的同时,我们构建了一个基于流程的披萨订单应用。我们先定义了应用程序的整体流程,从收集顾客信息开始到保存订单到系统中结束。

流程由多个状态和转移组成,它们定义了会话如何从一个状态到另一个状态。状态本身分为好多种:行为状态执行业务逻辑,视图状态涉及到流程中的用户,决策状态动态地引导流程执行,结束状态表明流程的结束,除此之外,还有子流程状态,它们自身是通过流程来定义 的。

最后,我们看到如何限制具有特定权限的用户才能访问流程、状态或转移。但是,我们还没有介绍应用程序对用户的认证以及如何授予用户权限。这就是 Spring Security 能够发挥作用的地方了,而 Spring Security 就是我们第 9 章将要介绍的内容。