Activiti基础——2

2.Activiti介绍
2.4、Activit–配置文件
2.4.1、activiti.cfg.xml
Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数。
定义数据库配置参数:
jdbcUrl: 数据库的JDBC URL。
jdbcDriver: 对应不同数据库类型的驱动。
jdbcUsername: 连接数据库的用户名。
jdbcPassword: 连接数据库的密码。
基于JDBC参数配置的数据库连接 会使用默认的MyBatis连接池。 下面的参数可以用来配置连接池(来自MyBatis参数):
jdbcMaxActiveConnections: 连接池中处于被使用状态的连接的最大值。默认为10。
jdbcMaxIdleConnections: 连接池中处于空闲状态的连接的最大值。
jdbcMaxCheckoutTime: 连接被取出使用的最长时间,超过时间会被强制回收。 默认为20000(20秒)。
jdbcMaxWaitTime: 这是一个底层配置,让连接池可以在长时间无法获得连接时, 打印一条日志,并重新尝试获取一个连接。(避免因为错误配置导致沉默的操作失败)。 默认为20000(20秒)。
示例数据库配置:

<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">
	<!-- 创建ProcessEngineConfiguration对象的bean -->
	<bean id="processEngineConfiguration"
		class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

		<!-- 配置对象的配置信息 :连接数据库,使用MyBatis连接池 -->
		<property name="jdbcUrl"
			value="jdbc:mysql:///activiti?createDatabaseIfNotExist=true" />
		<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUsername" value="root" />
		<property name="jdbcPassword" value="root" />
		<!--
		 databaseSchemaUpdate: 设置流程引擎启动和关闭时如何处理数据库表。 
		false(默认):检查数据库表的版本和依赖库的版本, 如果版本不匹配就抛出异常。
		true: 构建流程引擎时,执行检查,如果需要就执行更新。 如果表不存在,就创建。
		create-drop: 构建流程引擎时创建数据库表,关闭流程引擎时删除这些表。
		 -->
		<property name="databaseSchemaUpdate" value="true" />
	</bean>
</beans>

也可以使用javax.sql.DataSource。 (比如,Apache Commons的DBCP):
在这里插入图片描述
2.4.2、Log4j.properties
日志配置文件
2.5、总结
使用eclipse的插件绘制流程定义——>流程引擎完成事情——>数据库——>配置文件
3.准备环境
3.1.activiti5 软件环境及下载
3.1.1.软件要求

1)JDK1.6或者更高版本
2)支持的数据库有:h2, mysql, oracle, postgres, mssql, db2等。
3)支持activiti5运行的jar包
4)开发环境为Eclipse3.7.2+或者以上版本,myeclipse为8.6版本
3.1.2.相关资源下载
1)JDK可以到sun的官网下载
http://www.oracle.com/technetwork/java/javase/downloads/index.html
2)数据库,例如:mysql可以在官网上下载。
http://www.mysql.com
3)activiti也可以到Activiti官方网站下载得到。
http://activiti.org/download.html
4) Eclipse3.7或者MyEclipse8.6也可以到相应的网站上获得下载。
3.2.流程设计器
3.2.1.安装流程设计器(eclipse插件)
3.2.1.1 在有网络的情况下安装

安装流程设计器步骤如下:
1)打开 Help -> Install New Software. 在如下面板中:
在这里插入图片描述
2)在如下Install界面板中,点击Add按钮:
在这里插入图片描述
配置新装插件的地址和名称

3)然后填入下列字段
Name: Activiti BPMN 2.0 designer
Location: http://activiti.org/designer/update/
如图所示:
在这里插入图片描述
4)回到Install界面,在面板正中列表中把所有展示出来的项目都勾上:
在这里插入图片描述
5)点击复选框
在Detail部分记得选中 “Contact all updates sites…” , 因为它会检查所有当前安装所需要的插件并可以被Eclipse下载.

6)安装完以后,点击新建工程new->Other…打开面板,如果看到下图内容:
在这里插入图片描述
说明安装成功了。

3.3.准备Activiti5开发环境(初始化Activiti框架)
创建java project项目搭建略过

3.3.1.添加Activiti5的jar包
在activiti-5.13->wars目录下是一些示例项目,解压activiti-rest项目,导入activiti-rest目录中WEB-INF\lib下所有包。添加到classpath中。
由于我们使用的是Mysql数据库,Mysql数据库的链接驱动Activiti官方包中并没有提供,需要我们自己导入。手动导入mysql-connector-java.jar,添加到classpath下。
3.3.2.初始化数据库三种方式
在Activiti中,在创建核心的流程引擎对象时会自动建表。如果程序正常执行,mysql会自动建库,然后创建24张表。那我们怎么创建和谐的流程引擎呢?有以下三种方式。
3.3.3.1 编码方式

/**
	 * 创建ProcessEngine引擎对象:
	 *     就会自动创建数据和25张表
	 */
	@Test
	public void createProcessEngine1() {
		// 是一个接口:我们需要去连接数据库,肯定需要很多连接信息,就是配置信息,所以先做配置对象,再通过配置对象构建引擎
		// ProcessEngine
		//①:创建引擎的配置对象
		ProcessEngineConfiguration configuration=ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
		
		//②:做引擎配置对象的配置
		configuration.setJdbcUrl("jdbc:mysql:///activiti?createDatabaseIfNotExist=true");
		configuration.setJdbcDriver("com.mysql.jdbc.Driver");
		configuration.setJdbcUsername("root");
		configuration.setJdbcPassword("root");
		
		//设置创建数据库表的策略:true:创建
		configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
		
		//③:通过引擎配置对象构建引擎
		ProcessEngine pe = configuration.buildProcessEngine();
		// org.activiti.engine.impl.ProcessEngineImpl@3c947bc5
		System.out.println(pe);
	}

3.3.3.2 配置方式
在Actiiti5中定制流程必定会操作到数据库,如果都像上面那样写一大段代码会非常麻烦,所以我们可以把数据库连接配置写入配置文件。那我们就需要一个xml配置文件,具体的配置可以在用户手册中找到。
手册截图位置如下:
在这里插入图片描述
配置文件:
按照上面代码配置ProcessEngineConfiguration对象,主要定义数据库的连接配置和建表策略,配置文件代码如下:

<!-- 创建ProcessEngineConfiguration对象的bean -->
	<bean id="processEngineConfiguration"
		class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

		<!-- 配置对象的配置信息 :连接数据库,使用MyBatis连接池 -->
		<property name="jdbcUrl"
			value="jdbc:mysql:///activiti?createDatabaseIfNotExist=true" />
		<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUsername" value="root" />
		<property name="jdbcPassword" value="root" />
		
		<property name="databaseSchemaUpdate" value="true" />
	</bean>

Java代码如下:

/**
	 * 通过加载配置文件activiti.cfg.xml来创建
	 * @throws Exception
	 */
	@Test
	public void  createProcessEngine2() throws Exception {
		//①:通过引擎配置对象创建一个配置对象:加载classpath下的配置文件:activiti.cfg.xml
		ProcessEngineConfiguration configuration = ProcessEngineConfiguration
				.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
		//②:通过引擎配置对象创建引擎
		ProcessEngine pe = configuration.buildProcessEngine();
		// org.activiti.engine.impl.ProcessEngineImpl@3c947bc5
		System.out.println(pe);
	}

createProcessEngineConfigurationFromResource的参数值为我们添加的配置文件activiti.cfg.xml的名称,执行java代码,流程引擎对象创建成功运行后数据库会自动建表。
3.3.3.3 最佳实践
在前面看到了两种创建ProcessEngine(流程引擎)的方式,其实只要我们的配置文件的名称按照规范来,代码还可以简化很多。直接调用ProcessEngines的getDefaultProceeEngine方法时会自动加载classpath下名为activiti.cfg.xml文件。

/**
	 * 配置文件都是按照一定规则来的:activiti.cfg.xml有统一的命名规范,,放在resource下
	 * 使用框架提供的默认方法创建
	 * @throws Exception
	 */
	@Test
	public void  createProcessEngine3() throws Exception {
		ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
		System.out.println(processEngine);
	}

通过查看源码发现实际上就是对第二种的简单封装:
初始化时:
设置
在这里插入图片描述
获取:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值