在接触CAS时,见到了其中使用的Spring Web Flow(SWF),为改造CAS,就对Spring web flow稍稍研究了下。
Spring Web Flow介绍
Spring web flow是Spring web的一部分,允许用更高阶的语言抽象组织程序逻辑,目标是成为管理Web应用页面流程的最佳方案。
Spring web flow中,flow的完成要分多个步骤实现,每个步骤就是一个state。Spring web flow共有5中state,分别是:
- Action State
- View State
- Subflow State
- Decision State
- End State
除了 End State 外,其他 state 都可以转换到别的 state ,一般通过在 state 中定义 transition 来实现到其他 state 的转换,转换的发生一般由事件( event )来触发。
其实说白了很简单,因为其更接近人的高阶思维,就是将流程模块与实现分离,在web flow的配置文件里,对各个流程模块state像画流程图似的进行组装。
使用感触
个人感觉,Spring Web Flow的确很优雅,首先定义多个可复用的组件,然后通过配置xml就可以实现在各个state之间的跳转。
但是不十分看好,首先是编程语言之上的更高阶更抽象语言,至今就没有十分成功的;再是使用起来,觉得调试很麻烦;还有就是流程跳转分支较复杂的情况下,难以阅读。
了解较浅,以后了解多了再补充。