activiti獲取流程配置實例
流程配置的獲取方法api
流程配置的獲取共有七種方法,但是隻分爲三類,一類是根據配置文件路徑進行獲取、一類是根據流文件獲取、還有一類是構建一個空的實例,根據類的默認屬性來獲取
/**
* @author 鄭小康
* 流程引擎配置共有七種方法
* 方法1 方法2調用的實際是方法3
* 方法4 調用其實就是方法5
* 方法6 和方法7是相同
* */
//方法1
//實際調用的方法三隻不過默認beanName是processEngineConfiguration,resource爲activiti.cfg.xml
public static ProcessEngineConfiguration createProcessEngineConfigurationFromResourceDefault() {
return createProcessEngineConfigurationFromResource("activiti.cfg.xml", "processEngineConfiguration");
}
//方法2
public static ProcessEngineConfiguration createProcessEngineConfigurationFromResource(String resource) {
return createProcessEngineConfigurationFromResource(resource, "processEngineConfiguration");
}
//方法3
//主要實現過程獲取資源位置路徑,以及beanName來獲取對應的ProcessEngineConfiguration實例
public static ProcessEngineConfiguration createProcessEngineConfigurationFromResource(String resource, String beanName) {
return BeansConfigurationHelper.parseProcessEngineConfigurationFromResource(resource, beanName);
}
//方法4
public static ProcessEngineConfiguration createProcessEngineConfigurationFromInputStream(InputStream inputStream) {
return createProcessEngineConfigurationFromInputStream(inputStream, "processEngineConfiguration");
}
//方法5
//同方法一二三相同,只不過是以文件流來創建ProcessEngineConfiguration實例
public static ProcessEngineConfiguration createProcessEngineConfigurationFromInputStream(InputStream inputStream, String beanName) {
return BeansConfigurationHelper.parseProcessEngineConfigurationFromInputStream(inputStream, beanName);
}
//方法6
//創建一個實例,在即再手動注入數據庫相關屬性通過其父類ProcessEngineConfigurationImpl來進行實現
public static ProcessEngineConfiguration createStandaloneProcessEngineConfiguration() {
return new StandaloneProcessEngineConfiguration();
}
//方法7
//繼承了StandaloneProcessEngineConfiguration,只是在這個基礎上設置了 databaseSchemaUpdate的屬性和jdbcUrl
public static ProcessEngineConfiguration createStandaloneInMemProcessEngineConfiguration() {
return new StandaloneInMemProcessEngineConfiguration();
}
流程配置的bean方法配置
第一種和第二種方法都是都是需要在配置文件中創建對應的標籤元素,定義屬性值,結構如下:
<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="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://127.0.0.1:3306/activiti-study?useUnicode=true&characterEncoding=UTF-8
</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password" value="" />
</bean>
<bean id="processEngineConfigurationxQ"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="dataSource" ref="dataSource" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>
流程配置的獲取過程
下面展示一些其具體獲取過程,測試方法一是根據文件路徑獲取、測試方法二是根據文件流獲取、測試方法三是通過set注入
private final String cfgXml = System.getProperty("user.dir") + "/activiti/config/activiti.cfg.xml";
//方法1 2 3 的實現方式
@Test
public void createProcessEngineConfigurationFromResource() {
ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(cfgXml);
System.out.println(processEngineConfiguration);
ProcessEngine processEngine=processEngineConfiguration.buildProcessEngine();
System.out.println(processEngine);
processEngineConfiguration =ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(cfgXml,"processEngineConfiguration");
System.out.println(processEngineConfiguration);
processEngine=processEngineConfiguration.buildProcessEngine();
System.out.println(processEngine);
}
//方法4 和 5實現的方法方式
@Test
public void createProcessEngineConfigurationFromInputStream() throws IOException {
InputStream in = new FileInputStream(cfgXml);
ProcessEngineConfiguration configurationFromInputStream = ProcessEngineConfiguration
.createProcessEngineConfigurationFromInputStream(in);
System.out.println(configurationFromInputStream);
}
//方法6 和 7實現的方式
@Test
public void createStandaloneInMemProcessEngineConfiguration() {
ProcessEngineConfiguration pec = ProcessEngineConfiguration
.createStandaloneInMemProcessEngineConfiguration();
pec.setJdbcDriver("com.mysql.jdbc.Driver");
pec.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/activiti-study?useUnicode=true&characterEncoding=UTF-8");
pec.setJdbcUsername("root");
pec.setJdbcPassword("");
System.out.println(pec);
}