activiti工作流:
一、 activiti的流程引擎配置:
ProcessEngineConfiguration(抽象类)对象代表了一个activiti流程引擎的全部配置,该类提供了一系列的创建ProcessEngineConfiguration的静态方法,用于读取解析
相应的配置文件,并返回该对象实例。还提供了一些get和set方法,可用于配置流程引擎的其他属性。(使用其实现子类StandaloneProcessEngineConfiguration);
1、 createProcessEngineConfigurationFromResourceDefault方法 使用activiti默认的方式创建ProcessEngineConfiguration实例。
(默认为:ClassPath下读取名为“activiti.cfg.xml”配置文件,启动并获取名称为“processEngineConfiguration”的bean的实例。)
2 、createProcessEngineConfigurationFromResource方法:指定相应的配置文件。
3、createProcessEngineConfigurationFromInputStream方法:指定对应配置文件的输入流即可。
4、createStandaloneMemProcessEngineConfiguration方法:返回ProcessEngineConfiguration的子类StandaloneMemProcessEngineConfiguration实例。
该方法不读取配置文件,需要在代码中指定(仅有databaseSchemaUpdate属性和jdbcUrl属性),调用set和get方法。
5、createStandaloneProcessEngineConfigurantion方法:指定databaseSchemaUpdate和jdbcUrl默认属性:分别为:“false”和“jdbc:h2:tcp://localhost/activiti”。
二、数据源配置:
false:默认值,activiti启动时对比数据库表的保存的版本,没有表或者版本不匹配,抛异常。
true: 对所有的表进行更新,不存在,则自动创建。
create-drop:activiti启动时会执行数据库表的创建,关闭时,执行数据库表的删除操作。
drop-create: 一般不用,实际应用有风险:先删除表,在创建表。
三、其它配置:
1 history配置
none :不保存任何历史数据,因此流程执行最高效。
activity : 级别高于none,保存流程实例和流程行为,其它数据不保存。
audit : 除activity级别保存的数据外,还会保存全部的流程任务及其属性 (默认级别)
full
各个history级别,activiti会将相应的值保存到ACT_GE_PROPERTY表的historyLevel属性中:
2 jobExecutorActivate配置:
activiti中提供了一个工作执行器,执行器会定时到数据库中扫描没有执行的工作。然后使用jobExecutor类执行这些工作。JobExecutor会启动一条线程,
定时到数据库查询需要执行的工作,当查询符合条件的工作,则调用executeJobs方法执行这些工作。jobExecutor为抽象类,默认会使用DefaultJobExecutor。
该类维护了ThreadPoolExecutor线程池对象,会以扫描的工作数据主键创建一条线程,交给ThreadPoolEcecutor执行。
true: 表示activiti流程引擎创建时,需要启动JobExecutor
false:表示不启动。(默认值)
3 邮件服务器配置:
流程执行到某个节点,activiti会根据配置文件(EmailTask)发送邮件到相应的邮箱
4 ProcessEngineConfiguration bean
ProcessEngineConfiguration为抽象类,activiti实现的子类可以配置个性化的流程引擎。
1 StandaloneProcessEngineConfiguration: activiti会对事务进行管理。
2 StandaloneMemProcessEngineConfiguration:是 StandaloneProcessEngineConfiguration子类,对事务进行管理。
同时设置了databaseSchemaUpdate和jdbcUrl属性,可以在单元测试中使用。
3 SpringProcessEngineConfiguration:activiti和spring整合使用。
4 JtaProcessEngineConfiguration:不使用activiti事务,使用JTA进行事务管理。
5 自定义拦截器配置:activiti的拦截器使用命令模式和责任链模式,进行拦截处理,可以添加自己定义的的拦截器进行配置。
文章摘自于:疯狂workflow讲义:基于activiti工作流开发