将osworkflow集成到Spring环境中

osworkflow2.8提供了新的方式,将osworkflow集成到Spring环境中,并且使用Hibernate3持久化工作流状态。相关配置片断如下:

applicationContext.xml
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="hibernateProperties">
<ref bean="hibernateProperties"/>
</property>
<property name="mappingResources">
<list>

<!-- osworkflow mapping files -->

<value>com/opensymphony/workflow/spi/hibernate/HibernateCurrentStep.hbm.xml</value>
<value>com/opensymphony/workflow/spi/hibernate/HibernateHistoryStep.hbm.xml</value>
<value>com/opensymphony/workflow/spi/hibernate/HibernateWorkflowEntry.hbm.xml</value>
</list>
</property>

</bean>


<bean id="propertySetDelegate" class="com.opensymphony.workflow.spi.hibernate.DefaultHibernatePropertySetDelegate">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="workflowStore" class="com.opensymphony.workflow.spi.hibernate3.NewSpringHibernateWorkflowStore">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
<property name="propertySetDelegate">
<ref bean="propertySetDelegate"/>

</property>
</bean>
<bean id="workflowFactory" class="com.opensymphony.workflow.loader.SpringWorkflowFactory" init-method="init">
<property name="resource">
<value>workflows.xml</value>
</property>
<property name="reload">
<value>
true</value>
</property></bean>
<bean id="workflowConfiguration" class="com.opensymphony.workflow.config.SpringConfiguration">
<property name="store">
<ref local="workflowStore"/>
</property>
<property name="factory">
<ref local="workflowFactory"/>

</property>
</bean>
<bean id="workflowTypeResolver" class="com.opensymphony.workflow.util.SpringTypeResolver">
</bean>

在应用代码中初始化工作流示例片断:

Workflow workflow = new BasicWorkflow(String caller);
workflow.setConfiguration(workflowConfiguration);
workflow.initialize(workflowName, 0, null);

你可能感兴趣的:(将osworkflow集成到Spring环境中)