《Activiti工作流框架》专题(九)-Activiti工作流框架-整合Spring

1.引言

虽然前面的例子中我们可以自己手动来创建相应的API实例,但是在一个项目中这些API都应该以单例形式存在的。和Spring的集成主要就是把Activiti的主要对象交给Spring容器管理。

2.创建db.properties

dbcUrl=jdbc:mysql://localhost:3306/activitidb?useUnicode=true&characterEncoding=utf8
driverClass=com.mysql.jdbc.Driver
user=root
password=123
initialPoolSize=10
maxPoolSize=30

3.applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
      http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">


	<!-- 1.加载jdbc属性文件 -->
	<context:property-placeholder location="classpath:db.properties" />
	
	<!-- 2.数据源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="jdbcUrl" value="${jdbcUrl}" />
		<property name="driverClass" value="${driverClass}" />
		<property name="user" value="${user}" />
		<property name="password" value="${password}" />
		<property name="initialPoolSize" value="${initialPoolSize}" />
		<property name="maxPoolSize" value="${maxPoolSize}" />
	</bean>

	<!-- 事务管理器 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>

	<!-- 配置一个spring提供的对象,用于创建一个流程引擎配置对象 -->
	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
		<property name="transactionManager" ref="transactionManager" />
		<property name="dataSource" ref="dataSource" />
		<property name="databaseSchemaUpdate" value="true" />
	</bean>

	<!-- 创建流程引擎对象 -->
	<bean id="pe" class="org.activiti.spring.ProcessEngineFactoryBean">
		<property name="processEngineConfiguration" ref="processEngineConfiguration" />
	</bean>

</beans>

<!-- c3p0数据源 -->
<dependency>
	<groupId>com.mchange</groupId>
	<artifactId>c3p0</artifactId>
	<version>0.9.5-pre10</version>
</dependency>

4. 测试

public class TestSpring {
    
    

	@Test
	public void test1() {
    
    
		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
		ProcessEngine pe = (ProcessEngine) ctx.getBean("pe");
		System.out.println(pe);
	}
}

猜你喜欢

转载自blog.csdn.net/BruceLiu_code/article/details/113644484