使用Java配置配置Spring Web Flow

weixin_38081402 2019-09-12 12:28:23
我正在使用Spring 3.1并希望包含Spring Web Flow 2.3.我真正喜欢Spring的一件事是你可以不使用@Configuration和@Bean注释来支持使用Java配置的XML配置. 但是,我还没有找到如何以这种方式配置Web Flow.在我的Google搜索中出现的文档都只涉及XML配置.是否有可能,有没有人有任何指针? 编辑:我没有询问流程定义,而是要求替换webflow-config模式.目前,诸如flow-registry和flow-executor之类的配置项必须包含Spring-XML文件,以及引用它们的流处理程序映射.
...全文
24 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38089806 2019-09-12
  • 打赏
  • 举报
回复
如果您指的是流定义,那么没有. Webflow的Java基本配置是Webflow 3的一部分.最新的状态更新可以在this thread中找到. There is currently no set date for a Spring Web Flow 3 release. Version 3 tickets are currently being reviewed for inclusion in 2.4 or subsequent releases so once again if there are things you care about please vote, comment, and discuss. The flagship Web Flow 3 item — Java-based flow definitions, is still under consideration although currently on hold as we move forward with other important goals mentioned above.
英文版:The Definitive Guide to Spring Web Flow 内容简介 《Spring Web Flow权威指南》介绍了Spring Web Flow的构建系统Spring Jumpstart、Spring Web Flow架构和基础知识,并结合示例讲述了Spring Web Flow的高级概念、流执行管理和驱动,同时说明了如何测试流。 《Spring Web Flow权威指南》适合各层次Java Web开发人员阅读和参考。 编辑推荐 《Spring Web Flow权威指南》:Spring Web Flow创始人著作、体验全新的Web用户界面开发方式、深入剖析开源框架的设计与实现。 Spring Web Flow是著名的Spring框架的子项目。它解决了困扰Web应用程序开发人员的3个主要问题.即用户界面导航的控制、状态管理和模块化,极大地提高了生产效率,尤其适合需要复杂用户交互界面的Web应用程序。此外,它还借鉴了UML状态图思想的流定义方式,使得Web流的开发更加自然。 书中重点讲解Web流、流定义语言、流执行、流的测试以及自定义扩展等精髓内容,并结合使用Spring WebFlow 1开发的实例来向读者说明如何将其实际应用到项目中。尤其弥足珍贵的是,作者从框架设计者角度深入阐述了Spring Web Flow的设计思想和实现方式。更能让读者掌握其核心本质。此外,书中还清楚地讲述了SpringWeb Flow 1和Spring Web Flow 2在设计和使用上的差异。 《Spring Web Flow权威指南》适合各层次Java Web开发人员阅读和使用
Spring Web Flow 2.0 入门 本教程分析了 Spring Web Flow 2.0 的技术要点,并且通过创建一个示例应用程序,展示了 Spring Web Flow 2.0 的基本知识。 开始之前 关于本教程 本教程通过一个简化的购物车应用,介绍了如何使用 Spring Web Flow 2.0 来构建 Web 应用程序。本教 程以讲解实例为主,为了读者更好地理解 Spring Web Flow ,也有部分理论的解释。 先决条件 本教程要求读者具备 Java Web 应用的基本知识、熟悉 Spring Framework 的应用。 系统要求 运行本教程中的示例,需要下列工具: • JDK 1.6.0+ • Spring Framework 2.5.4+ 及其依赖项 • Spring Web Flow 2.0.2 • Tomcat 6.0.0+ (为支持 EL , Tomcat 须 6.0 及以上版本) • eclipse 3.2.2+ Spring Web Flow 2.0 概述 Spring Web Flow 2.0 新特性 Spring Web FlowSpring 的一个子项目,其最主要的目的是解决跨越多个请求的、用户与服务器之间 的、有状态交互问题。最新版本为 2.0 ,相比于 1.x 版的 Spring Web Flow ,有以下几个值得注意的新 特性。 • 与 Spring MVC 深度整合 Spring Web Flow 1.x 是个自成体系的框架,可与 Spring Web MVC 、 Struts 、 JSF 等 Web 框架整合。最新的 Spring Web Flow 2.0 则明确声明是基于 Spring Web MVC 的一个扩展。 • 提供了处理 Ajax 事件的能力 Ajax 事件的处理与 Web Flow 事件的处理相一致,在处理完成后, flow 即可刷新客户端相关 界面代码。 • 与 JSF 整合 通过将 JSF 层层包装,最终可在 Spring Framework 和 Spring Web Flow使用 JSF 的各种 组件。 • 与 Spring Security (原 Acegi Security )整合 只需将某个 flow 声明为“ secured ”,即可利用 Spring Security 来确定当前用户是否有权限运 行 flow 、激发事件等等。 • 更简洁的配置 官方的数据说同一个 flow , 2.0 版的配置比 1.x 版的配置少 50% 的 XML 代码。 2 • 重用更方便 Spring Web Flow 2.0 提供了 flow 的继承,重用即有的 flow 代码更加容易。 • 重用更方便 Spring Web Flow 2.0 提供了 flow 的继承,重用即有的 flow 代码更加容易。 购物车用例 要了解 Spring Web Flow 是什么东西,最好的办法莫过于查看示例,图 2 展示了一个简化的购物车的流 程。 图 1 购物车示例 图 2 所示流程用 Spring Web Flow 2.0 的配置文件表示如下: 清单 1 用 Spring Web Flow 语义表达购物车流程 …… <flow> flow> 清单 1 省略了许多技术细节,展示的只是一个业务的流程,主要是为了让大家对 Spring Web Flow 的语 义有个初始的印象。从清单 1 中,应注意到一个很重要的特征—— Spring Web Flow 语义与 Servlet API 3 无关。更确切地讲, Spring Web Flow 语义关注的是业务的流程,并未与 Sun 公司的 Web 规范紧密结 合,这种描述是更高层次的抽象,差不多是在建模的角度来描述业务流程。 不过, Spring Web Flow 也并非只有抽象,现在还没有哪一种工具或语言可以将一个模型直接转换成相应 的应用程序。 Spring Web Flow 更像是抽象建模和技术细节的混血儿,相比于湮没在繁多的控制器和视图 中的 Web MVC 应用来讲, Spring Web Flow 提供了如清单 1 所描述的更高层次的抽象,但同时它也 整合了像 Unified EL 这样的工具来控制技术上的细节。 Spring Web Flow 的基本元素 Flow 可看作是客户端与服务器的一次对话( conversation )。 Flow 的完成要由分多个步骤来实现,在 Spring Web Flow 的语义中,步骤指的就是 state 。 Spring Web Flow 提供了五种 state ,分别是 Action State 、 View State 、 Subflow State 、 Decision State 、 End State ,这些 state 可用于定义 flow 执 行过程中的各个步骤。除了 End State 外,其他 state 都可以转换到别的 state ,一般通过在 state 中 定义 transition 来实现到其他 state 的转换,转换的发生一般由事件( event )来触发。 什么情况下可以使用 Spring Web Flow? 前面讲了, Spring Web Flow 提供了描述业务流程的抽象能力,但对一种 Web 开发技术而言,仅有这 些是不够的。同时, Spring Web Flow 是不是能够取代其他 Web MVC 技术?或者在任何情况下都应优 先使用 Spring Web Flow ?要回答这些问题,先来看一下 Spring Web Flow 所着力解决的技术问题。 Web 应用程序的三种范围 Java Servlet 规范为 Web 应用程序中用到的各种对象规定了三种范围( scope ),分别是 request 范 围、 session 范围和 application 范围。 • request 范围中的对象是跟客户的请求绑定在一起的,每次请求结束都会销毁对象,而新的请求 过来时又会重新创建对象。 request 范围适合存放数据量较大的临时数据。 • session 范围中的对象是跟会话( session )绑定在一起的,每次会话结束会销毁这些对象,而 新的会话中又会重新创建。 HTTP 协议本身是无状态的,服务器和客户端要实现会话的管理,只 能借助于一些辅助的手段,如在协议的数据包中加一些隐藏的记号,等等。 session 范围适合存 放本次会话需要保留的数据。 • application 范围的对象是跟应用程序本身绑定在一起,从 Servlet API 的角度来讲,就是存放在 ServletContext 中的对象,它们随着 Servlet 的启动而创建, Servlet 关闭时才会销毁。 application 范围适合存放那些与应用程序全局相关的数据。 现实开发中最令人头痛的莫过于 session 范围, Java Servlet 规范指明可在 web.xml 中按如下方式配置 session 的有效时间为100 分钟: 清单 2 web.xml 中 session 的配置 100 然而,现实中的 session 范围更像是“鸡肋”,把大量数据放入 session 会导致严重的效率问题,

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧