Shark是个写得不错的工作流引擎,自然对一般的项目就可以考虑把Shark集成到自己的应用当中,现在大多数应用都使用Spring框架,而Shark并没有明确地支持Spring,因此用必要采取一些措施,用Spring将Shark集成到你的应用中。
让我们先看看下面几个重要类。
SharkInterface:
正如其注释中所说的,SharkInterface是基于Shark的工作流应用中访问引擎的最顶级的接口,它有Shark和SharkEngineManager两个实现类;
Shark:<o:p></o:p>
Shark是SharkInterface的一个实现类,其主要功用在于加入配置信息并创建SharkEngineManager实例;<o:p></o:p>
SharkEngineManager:
SharkEngineManager是Shark应用中十分重要的一个类,可以算是核心类之一,它除了装载配置信息并初始化外,最重要的职能是封装了各种管理器和功能执行实例,诸如CallbackUtilities、ObjectFactory、ToolActivityHandler、XMLInterface、AssignmentManager、CacheMgr、PersistentManagerInterface、eventAuditManagers、LoggingManager 、 RepositoryPersistenceManager 、 ScriptingManager 、SecurityManager、 ToolAgentManager 、TxSynchronizationFactory 、 WfEngineInteroperability等。<o:p></o:p>
Shark的这种结构即提供了一种可扩展性,又为实现IoC方式的应用集成提供了方便。
显而易见,要想用Spring将Shark集成到你的应用中,最直接的方法是在Spring的配置文件中配置SharkInterface接口,用Shark作实现类,并配置执行静态方法:configure(File configFile)即可;当然你也可以写自己的接口和实现类来创建提供SharkEngineManager实例。笔者是采用后一种方法的。
<o:p></o:p>