浏览代码

系统增加activiti配置,用于工作流处理

xian 6 年之前
父节点
当前提交
7229767648

+ 13 - 0
watero-rst-web/pom.xml

@@ -114,6 +114,19 @@
             <artifactId>IKAnalyzer2012</artifactId>
             <version>1.0</version>
         </dependency>
+
+        <!-- 工作流 -->
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-engine</artifactId>
+            <version>6.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.activiti</groupId>
+            <artifactId>activiti-spring</artifactId>
+            <version>6.0.0</version>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 9 - 0
watero-rst-web/src/main/resources/activiti-jdbc.properties

@@ -0,0 +1,9 @@
+activiti.jdbc.driver=com.mysql.jdbc.Driver
+activiti.jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com:3306/activiti?serverTimezone=Asia%2fShanghai&useTimezone=true&useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull&useSSL=true&paranoid=true
+activiti.jdbc.username=activiti
+activiti.jdbc.password=Aactiviti123
+#pool settings
+activiti.jdbc.pool.init=1
+activiti.jdbc.pool.minIdle=3
+activiti.jdbc.pool.maxActive=20
+activiti.jdbc.testSql=SELECT 1

+ 74 - 0
watero-rst-web/src/main/resources/activiti.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="transactionManager_activiti" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
+        <property name="dataSource" ref="dataSource_activiti"/>
+    </bean>
+    <!-- activiti datasource -->
+    <bean id="dataSource_activiti" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
+        <!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass -->
+        <property name="driverClassName" value="${activiti.jdbc.driver}" />
+        <!-- 基本属性 url、user、password -->
+        <property name="url" value="${activiti.jdbc.url}" />
+        <property name="username" value="${activiti.jdbc.username}" />
+        <property name="password" value="${activiti.jdbc.password}" />
+        <!-- 配置初始化大小、最小、最大 -->
+        <property name="initialSize" value="${activiti.jdbc.pool.init}" />
+        <property name="minIdle" value="${activiti.jdbc.pool.minIdle}" />
+        <property name="maxActive" value="${activiti.jdbc.pool.maxActive}" />
+        <!-- 配置获取连接等待超时的时间 -->
+        <property name="maxWait" value="60000" />
+        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
+        <property name="timeBetweenEvictionRunsMillis" value="60000" />
+        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
+        <property name="minEvictableIdleTimeMillis" value="300000" />
+        <!-- 用来检测连接是否有效的sql -->
+        <property name="validationQuery" value="${activiti.jdbc.testSql}" />
+        <property name="testWhileIdle" value="true" />
+        <!-- 申请连接时执行validationQuery检测连接是否有效,服务器单方面关闭连接,防止执行SQL的时候报错 -->
+        <property name="testOnBorrow" value="true" />
+        <!-- 归还连接的时候不需要校验 -->
+        <property name="testOnReturn" value="false" />
+        <!-- 物理连接初始化的时候执行的sql : 设置编码,Mysql服务器需要更高版本 -->
+        <property name="connectionInitSqls" value="set names utf8mb4;SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));"/>
+        <property name="filters" value="stat"/>
+        <!-- 配置监控统计拦截的filters -->
+        <property name="proxyFilters">
+            <list>
+                <ref bean="wall-filter"/>
+            </list>
+        </property>
+    </bean>
+    <bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter">
+        <property name="config" ref="wall-config" />
+    </bean>
+    <bean id="wall-config" class="com.alibaba.druid.wall.WallConfig">
+        <property name="multiStatementAllow" value="true" />
+    </bean>
+
+    <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
+        <property name="dataSource" ref="dataSource_activiti"/>
+        <property name="transactionManager" ref="transactionManager_activiti"/>
+        <property name="databaseSchemaUpdate" value="true"/>
+        <property name="asyncExecutorActivate" value="true"/>
+        <property name="deploymentResources" value="classpath*:*.bpmn"/>
+    </bean>
+    <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
+        <property name="processEngineConfiguration" ref="processEngineConfiguration"/>
+    </bean>
+    <!-- 管理流程定义 -->
+    <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"/>
+    <!--  -->
+    <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService"/>
+    <!-- 组织机构管理 -->
+    <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService"/>
+</beans>

+ 8 - 2
watero-rst-web/src/main/resources/log4j.properties

@@ -1,5 +1,5 @@
 #levels: debug, info, warn, error, fatal
-log4j.rootLogger=info,stdout,infoLog,errorLog
+log4j.rootLogger=info,stdout,infoLog,errorLog,ACT
 
 #\u63A7\u5236\u53F0
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
@@ -40,4 +40,10 @@ log4j.logger.java.sql.ResultSet=INFO
 log4j.logger.org.apache=INFO
 log4j.logger.java.sql.Connection=INFO
 log4j.logger.java.sql.Statement=INFO
-log4j.logger.java.sql.PreparedStatement=INFO
+log4j.logger.java.sql.PreparedStatement=INFO
+
+# 工作流日志信息
+log4j.logger.org.activiti.engine.impl.persistence.entity=trace
+log4j.appender.ACT=org.apache.log4j.ConsoleAppender
+log4j.appender.ACT.layout=org.apache.log4j.PatternLayout
+log4j.appender.ACT.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n

+ 0 - 3
watero-rst-web/src/main/resources/watero-rst-db.xml

@@ -9,9 +9,6 @@
 					http://www.springframework.org/schema/context/spring-context.xsd
 					http://www.springframework.org/schema/tx
 					http://www.springframework.org/schema/tx/spring-tx.xsd">
-	<!-- 获取jdbc配置文件 -->
-	<context:property-placeholder location="classpath:dev-jdbc.properties"/>
-
     <!--app 前台配置库数据源-->
     <bean id="ratfwDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
         <!-- 数据源驱动类可不写,Druid默认会自动根据URL识别DriverClass -->

+ 16 - 2
watero-rst-web/src/main/resources/watero-rst-ioc.xml

@@ -15,7 +15,18 @@
 		http://www.springframework.org/schema/task/spring-task-4.1.xsd
 		http://www.springframework.org/schema/context
 		http://www.springframework.org/schema/context/spring-context-4.1.xsd">
-		
+
+	<!-- 获取jdbc配置文件 -->
+	<bean id="myConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+		<property name="locations">
+			<list>
+				<value>classpath:dev-jdbc.properties</value>
+				<value>classpath:activiti-jdbc.properties</value>
+			</list>
+		</property>
+		<property name="ignoreUnresolvablePlaceholders" value="true" />
+	</bean>
+
 	<!-- 配置自动扫描的包:不扫描控制器和异常处理 -->
 	<context:component-scan base-package="com.iamberry">
 		<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
@@ -26,7 +37,7 @@
     <aop:aspectj-autoproxy proxy-target-class="true"/>
 
 	<!-- 开启注解启动定时器 -->
-    <!--<task:annotation-driven/>-->
+    <task:annotation-driven/>
 
 	<!-- DataSource -->
 	<import resource="classpath:watero-rst-db.xml"/>
@@ -34,4 +45,7 @@
 	<!-- Shiro -->
 	<import resource="classpath:watero-web-shiro.xml"/>
 
+	<!-- Activi -->
+	<import resource="classpath:activiti.xml"/>
+
 </beans>