今天跟大家说怎么配置Activiti的配置xml有什么用,一直问为什么,看看就对了,这是各位童鞋整合Activiti必须要面对的文件,所以请留意了:
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> <!-- 数据库连接池 --> <property name="dataSource" ref="mysqlDataSource" /> <!-- 事务 --> <property name="transactionManager" ref="mysqlTransactionManager" /> <!-- 数据库自动升级 --> <property name="databaseSchemaUpdate" value="false" /> <!-- 作业执行器 --> <property name="jobExecutorActivate" value="false" /> <property name="enableDatabaseEventLogging" value="false" /> <!-- 历史级别 --> <property name="history" value="activity" /> <!-- 生成流程图的字体 --> <property name="activityFontName" value="宋体"/> <property name="labelFontName" value="宋体"/> <property name="customFormTypes"> <list> <bean class="org.activiti.explorer.form.UserFormType"/> <bean class="org.activiti.explorer.form.ProcessDefinitionFormType"/> <bean class="org.activiti.explorer.form.MonthFormType"/> </list> </property> <!-- //更换id生成策略 <property name="idGenerator"> <bean class="org.activiti.engine.impl.persistence.StrongUuidGenerator" /> </property> --> <!--不创建identity表 --> <property name="dbIdentityUsed" value="false"/> <!--自定义用户和组--> <property name="customSessionFactories"> <list> <bean class="com.jy.service.workflow.factory.GroupManagerFactory"> <property name="groupEntityManager" > <bean class="com.jy.service.workflow.factory.GroupManager"/> </property> </bean> <bean class="com.jy.service.workflow.factory.UserManagerFactory"> <property name="userEntityManager" > <bean class="com.jy.service.workflow.factory.UserManager"/> </property> </bean> </list> </property> </bean>
dataSource:就是我们系统的数据库配置
transactionManager:就是我们系统的对应事务配置
databaseSchemaUpdate:填true的话,当数据库没有ACT的表会自动创建,填false的话,相对的就是当数据库没有ACT的表不会自动创建。(具体表结构可以查看《Activiti数据库表结构(表详细版)》)
jobExecutorActivate:有定时任务的话,这个必须开启,如果没有开启的话,定时任务是启动不了的。
enableDatabaseEventLogging:是否开启工作的数据日志。(一般我都不开,系统日志够多了,呵呵)
history:
idGenerator:Activiti表的id生成策略,本身原生Activiti就提供UUID(传说永不重复的牛掰ID策略),默认是Activiti数字自增策略,这个以后篇章再说吧。
activityFontName和labelFontName:解决中文bug问题的。
customFormTypes:自定义表单字段类型 。
dbIdentityUsed:是否创建identity表 。
customSessionFactories:使用自定义用户和组。
然后这里以上就是processEngineConfiguration的基本配置结构了。
然后就是Activiti的核心引擎了,这里介绍的是springmvc的做法,注入引擎类,然后在框架里@Autowired就可以直接调用了,具体这些方法有什么用,请查看《【Activiti:学以致用】【第一章】 工作流核心API》
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean" destroy-method="destroy"> <property name="processEngineConfiguration" ref="processEngineConfiguration" /> </bean> <!-- 7大接口 --> <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" /> <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" /> <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" /> <bean id="formService" factory-bean="processEngine" factory-method="getFormService" /> <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" /> <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" /> <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" />
总结:
* activityFontName和labelFontName是必须的,不然中文真没法玩啊!!
* databaseSchemaUpdate有个好处会自动找对应的数据库版本.sql,原生.sql是分了类的,一般关了比较好,不然每次都要检验一次数据库影响性能,最好还是自己乖乖的导sql吧!!