本文主要介绍基于maven的pom文件的配置,另外就是activiti的Spring配置。
activiti主要的依赖包如下:
<dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>${activiti.version}</version></dependency><dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>${activiti.version}</version></dependency><dependency> <groupId>org.activiti</groupId> <artifactId>activiti-json-converter</artifactId> <version>${activiti.version}</version></dependency><dependency> <groupId>org.activiti</groupId> <artifactId>activiti-explorer</artifactId> <version>${activiti.version}</version> <exclusions> <exclusion> <artifactId>vaadin</artifactId> <groupId>com.vaadin</groupId> </exclusion> <exclusion> <artifactId>dcharts-widget</artifactId> <groupId>org.vaadin.addons</groupId> </exclusion> <exclusion> <artifactId>activiti-simple-workflow</artifactId> <groupId>org.activiti</groupId> </exclusion> </exclusions></dependency><dependency> <groupId>org.activiti</groupId> <artifactId>activiti-modeler</artifactId> <version>${activiti.version}</version></dependency><dependency> <groupId>org.activiti</groupId> <artifactId>activiti-rest</artifactId> <version>${activiti.version}</version></dependency><dependency> <groupId>org.activiti</groupId> <artifactId>activiti-diagram-rest</artifactId> <version>${activiti.version}</version></dependency>
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration"> <property name="databaseType" value="mysql"/> <property name="databaseSchemaUpdate" value="true"/> <property name="jobExecutorActivate" value="true" /> <property name="history" value="full"/> </bean></beans>
Activiti从最开始设计时就考虑了与Spring的集成,其实它的默认配置文件activiti-cfg.xml就是Spring格式的。所以它与Spring的集成应该是很好处理的一件事情,具体如下:
<!-- 数据源 --><bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource"> <property name="driverClass" value="org.h2.Driver" /> <property name="url" value="jdbc:h2:file:~/activiti-in-action-chapter7;AUTO_SERVER=TRUE" /> <property name="username" value="sa" /> <property name="password" value="" /></bean><!-- 定义事务 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /></bean><!-- 定义基于Spring引擎配置对象bean--><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> <property name="dataSource" ref="dataSource" /> <property name="transactionManager" ref="transactionManager" /> <property name="databaseSchemaUpdate" value="true" /> <property name="jobExecutorActivate" value="true" /> <property name="history" value="full" /> <property name="processDefinitionCacheLimit" value="10"/> <!-- 生成流程图的字体 --> <property name="activityFontName" value="宋体"/> <property name="labelFontName" value="宋体"/></bean><!--定义引擎工厂bean--><bean id="processEngineFactory" class="org.activiti.spring.ProcessEngineFactoryBean"> <property name="processEngineConfiguration" ref="processEngineConfiguration" /></bean><!-- Activiti的七大service接口 --><bean id="repositoryService" factory-bean="processEngineFactory" factory-method="getRepositoryService" /><bean id="runtimeService" factory-bean="processEngineFactory" factory-method="getRuntimeService" /><bean id="formService" factory-bean="processEngineFactory" factory-method="getFormService" /><bean id="identityService" factory-bean="processEngineFactory" factory-method="getIdentityService" /><bean id="taskService" factory-bean="processEngineFactory" factory-method="getTaskService" /><bean id="historyService" factory-bean="processEngineFactory" factory-method="getHistoryService" /><bean id="managementService" factory-bean="processEngineFactory" factory-method="getManagementService" />
具体的配置含义在注释中都有解释
/** * 基于传统的单元测试,测试Spring配置是否可以创建引擎对象 * * @author Jonathan * @version 2016/10/11 12:07 * @since JDK 7.0+ */public class CreateEngineUseSpringProxy { @Test public void createEngineUseSpring() { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-test.xml"); ProcessEngineFactoryBean factoryBean = context.getBean(ProcessEngineFactoryBean.class); assertNotNull(factoryBean); RuntimeService bean = context.getBean(RuntimeService.class); assertNotNull(bean); }}
/** * 基于注解的单元测试,测试Spring配置是否可以创建引擎对象 * * @author Jonathan * @version 2016/10/11 14:33 * @since JDK 7.0+ */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext-test.xml")public class CreateEngineUseSpringProxyAnnotation { @Autowired RuntimeService runtimeService; @Autowired ProcessEngineFactoryBean processEngineFactoryBean; @Test public void testService() throws Exception { assertNotNull(runtimeService); ProcessEngine processEngine = processEngineFactoryBean.getObject(); assertNotNull(processEngine.getRuntimeService()); }}
联系客服