Architectural Overview
As Figure 11-3 illustrates, Spring Web Flow integrates with Spring MVC, Spring Portlet MVC,
Struts, and JavaServer Faces ( JSF). Because Spring Web Flow is very self-contained, the entry
points to all these frameworks are consistent, and therefore the cost of integration is minimal.
Figure 11-3.Overview of integration options
Integration with other frameworks is done by way of a Front Controller (http://java.sun.
com/blueprints/corej2eepatterns/Patterns/FrontController.html)—associating a flow with
a URL that is backed by a Controller.
Inside the Spring Web Flow System
Inside Spring Web Flow a central FlowExecutionManagerfaçade is responsible for launching
executions of flows on behalf of clients. These flow executions represent new user conversa-
tions with the server. Each conversation is given its own local data structure, called flow scope,
allowing for storage of conversational state. Spring Web Flow fully manages the storage and
restoration of these FlowExecutionobjects in a repository, and automatically discards them
when a conversation ends.
Spring Web Flow
webflow.manager.mvc.FlowController
webflow.manager.jsf.FlowNavigationHandler webflow.manager.mvc.PortletFlowController
webflow.manager.struts.FlowAction
Struts Spring MVC
JSF Portlets
CHAPTER 11 ■INTRODUCTION TO SPRING WEB FLOW 315