博主使用為activiti5.22的版本。
1、創建maven工程。
2、在pom文件中引入所需要的包,如:activiti包、數據庫包。
這是我引用的包:
<dependencies> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId> <version>5.22.0</version> </dependency> <!-- <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>5.22.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5-pre10</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>4.3.8.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.1.8.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.1.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.1.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.8.RELEASE</version> </dependency> <dependency> <groupId>com.googlecode.ehcache-spring-annotations</groupId> <artifactId>ehcache-spring-annotations</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>jsr250-api</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.1.5.RELEASE</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> </dependencies>
引入pom文件完畢之后,在maven的resources下新建activiti.cfg.xml文件,配置數據源及引擎類。后期與spring框架結合使用,記得把此xml文件引入到spring中。
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="url" value="jdbc:mysql://localhost:3306/activiti"></property> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> </bean> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"> <property name="dataSource" ref="dataSource"></property> </bean>
下面是流程引擎配置類的幾種創建方式,
@Test public void createDataTable(){ ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration(); processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver"); processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/activiti"); processEngineConfiguration.setJdbcUsername("root"); processEngineConfiguration.setJdbcPassword("root"); /** * true:如果不存在表就創建,存在就直接使用。(默認使用該策略,真實項目不推薦使用,如果目前使用較低版本,貿然引入了更高的版本后, * 上線之后,就會導致activiti數據庫環境升級版本,可能造成線上部分表無法使用。順便一提:activiti的版本只能向上升級,無法降級處理) * false:流程引擎啟動的時候,不會創建表,如果不存在就報錯,存在就直接使用。(建議使用) * create-drop:每次都是創建表,然后刪除表,需要手動調用引擎類的close方法(更不建議使用) */ // processEngineConfiguration.setDatabaseSchemaUpdate("true"); // processEngineConfiguration.setDatabaseSchemaUpdate("false"); processEngineConfiguration.setDatabaseSchemaUpdate("create-drop"); ProcessEngine buildProcessEngine = processEngineConfiguration.buildProcessEngine(); // buildProcessEngine.close(); System.out.println(buildProcessEngine); } /** * 配置文件的方式創建 (流方式一) */ @Test public void createTabale1(){ InputStream inputStream=App.class.getClassLoader().getResourceAsStream("activiti.cfg.xml"); ProcessEngineConfiguration processEngineConfigurationFromInputStream = ProcessEngineConfiguration. createProcessEngineConfigurationFromInputStream(inputStream); ProcessEngine processEngine = processEngineConfigurationFromInputStream.buildProcessEngine(); System.out.println(processEngine); } /** * 配置文件的方式創建 (流方式二) * 第一種方式是調用第二種方式的源碼 */ @Test public void createTabale2(){ InputStream inputStream=App.class.getClassLoader().getResourceAsStream("activiti.cfg.xml"); ProcessEngineConfiguration processEngineConfigurationFromInputStream = ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream(inputStream, "processEngineConfiguration"); ProcessEngine processEngine = processEngineConfigurationFromInputStream.buildProcessEngine(); System.out.println(processEngine); } /** * 配置文件的方式創建 (資源方式一) * 第一種方式是調用第二種方式的源碼 */ @Test public void createTabale3(){ String resource="activiti.cfg.xml"; ProcessEngineConfiguration processEngineConfigurationFromResource = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource); ProcessEngine buildProcessEngine = processEngineConfigurationFromResource.buildProcessEngine(); System.out.println(buildProcessEngine); } /** * 配置文件的方式創建 (資源方式二) * 第一種方式是調用第二種方式的源碼 */ @Test public void createTabale4(){ String resource="activiti.cfg.xml"; ProcessEngineConfiguration processEngineConfigurationFromResource = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource,"processEngineConfiguration"); ProcessEngine buildProcessEngine = processEngineConfigurationFromResource.buildProcessEngine(); System.out.println(buildProcessEngine); } /** * 默認的方式創建 (資源方式一) * 通過文件的位置:activiti.cfg.xml。此處我的文件位置是在resources下 */ @Test public void createTabale5(){ ProcessEngineConfiguration processEngineConfigurationFromResource = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault(); ProcessEngine buildProcessEngine = processEngineConfigurationFromResource.buildProcessEngine(); System.out.println(buildProcessEngine); }
運行后大家會發現數據庫多了二十幾張表,都是activiti自己的表結構,沒錯吧。后期與實際業務結合的時候,可根據需求再自定義表與之結合即可。
后續會補上aciviti的表結構詳解,盡請期待!