一、与spring整合
1、pom.xml中添加依赖
<dependencies>
<!--activiti7核心包-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<!--activiti7与spring整合的包-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-converter</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-json-converter</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-layout</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<dependency>
<groupId>org.activiti.cloud</groupId>
<artifactId>activiti-cloud-services-api</artifactId>
<version>7.0.0.Beta1</version>
</dependency>
<dependency>
<groupId>aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
</dependency>
<!-- log end -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!--数据源暂时用dbcp-->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
</dependencies>
2、类路径下添加spring-config.xml配置文件
<!--配置数据源-->
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/activiti7_study"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
<property name="maxActive" value="50"/>
<property name="maxIdle" value="10"/>
<property name="minIdle" value="5"/>
</bean>
<!--spring环境下的工作流引擎配置对象-->
<bean id="processConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
<property name="dataSource" ref="datasource"/>
<property name="transactionManager" ref="transactionManager"/>
<!--数据库更新策略,有则更新,没有则创建-->
<property name="databaseSchemaUpdate" value="true"/>
</bean>
<!--配置spring环境下的流程引擎对象-->
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<property name="processEngineConfiguration" ref="processConfiguration"/>
</bean>
<!--根据流程引擎,创建常用的service并注入到IOC容器中-->
<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="historyService" factory-bean="processEngine" factory-method="getHistoryService"/>
<!--spring的数据源事务管理器,对数据源进行管理-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="datasource"/>
</bean>
<!--配置事务的通知,spring用aop来实现声明式事务-->
<!--<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!–针对被通知的方法,设置具体的事务属性–>
<tx:attributes>
<tx:method name="save*" propagation="REQUIRED"/>
<tx:method name="insert*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="remove*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="edit*" propagation="REQUIRED"/>
<tx:method name="find*" propagation="REQUIRED"/>
<tx:method name="select*" propagation="REQUIRED"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="list*" propagation="SUPPORTS" read-only="true"/>
</tx:attributes>
</tx:advice>-->
<!--aop配置,-->
<!--<aop:config proxy-target-class="true">
<!–配置切入点表达式–>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* com.demo.serviceimpl.*.*(..))"/>
</aop:config>-->
3、加载spring的配置文件,注入操作service并初始化activiti数据库
@RunWith(SpringJUnit4ClassRunner.class)
//加载配置文件,好创建processEngine对象,以创建数据表
@ContextConfiguration(locations = "classpath:/spring-config.xml")
public class SpringActivitiTest {
@Autowired
private ProcessEngine processEngine;
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
@Autowired
private HistoryService historyService;
@Test
public void test01(){
System.out.println(repositoryService);
}
}
二、与springBoot整合
1、pom.xml添加依赖
<dependencies>
<!-- activiti7 starter
7.1.0.M1 这个M1版本好像跟没整合springSecurity一样,不引入springSecurity依赖,
启动类不排除SecurityAutoConfiguration.class,一样可以正常启动,刚开始使用M6版本,不引入springSecurity就启动报错
-->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter</artifactId>
<version>7.1.0.M1</version>
</dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!--mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--druid数据源 starter-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
2、application.yml配置
server:
port: 2021
spring:
application:
name: activiti7_springBoot
datasource:
druid:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/activiti7_study?useUnicode=true&useSSL=false&allowMultiQueries=true&characterEncoding=UTF-8
username: root
password: 123456
initial-size: 10
max-active: 20
min-idle: 2
activiti:
#database-schema-update: drop-create #先删除act_的表在创建
#数据表生成策略,没有时创建,有时更新
database-schema-update: true
#生成历史记录相关表
db-history-used: true
#不检查默认路径下的.bpmn文件,否则若没有就报错
check-process-definitions: false
history-level: full
3、springBoot启动类(普通的启动类)
@SpringBootApplication(exclude = {
//SecurityAutoConfiguration.class
})
public class Activiti7SpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(Activiti7SpringBootApplication.class, args);
}
}
启动后,就初始化activiti7的数据表。
还是springBoot简单好用啊。