1 . 实名认证审批流程 - 需求
通过邮箱模拟银行卡确认申请
注意:采用Activiti给邮件服务器发送邮件,默认访问的localhost本机的邮件服务器
2. 配置邮件服务器
- 安装邮件服务器
- 将apache-james-3.0-beta4-app.zip解压到非中文,非空格目录下
- 将jaxb-impl-2.1.3.jar拷贝到apache-james-3.0-beta4-app\conf\lib\jaxb-impl-2.1.3.jar中,注意:==JDK1.6不需要拷贝这个jar包;JDK1.7,1.8需要拷贝这个jar包 ==
- 将apache-james-3.0-beta4-app.zip解压到非中文,非空格目录下
- 通过命令行启动邮件服务器
-
第一个DOS窗口启动邮件服务器:
启动成功: -
第二个DOS窗口创建邮箱域名和邮箱用户:
-
3. foxmail邮件客户端
- 解压
- 启动:
3.登录
4. 配置邮件服务器的数据库(mysql)
- 服务器默认将数据保存到本地Derby数据库中, 也可以将数据保存到指定的数据库中
- 修改 apache-james-3.0-beta4\conf\james-database-template.properties 文件
改名为:
修改配置:
- 拷贝MySQL驱动jar包mysql-connector-java-5.1.8.jar到apache-james-3.0-beta4-app\conf\lib目录下
- 再次重启邮件服务器和邮箱用户 ,会发现数据库成功创建表
- 修改 apache-james-3.0-beta4\conf\james-database-template.properties 文件
5. 完成自动发送邮件功能
- 流程与设置
2.部署并启动流程实例
部署:
启动:
6. Spring集成JavaMail完成程序代码发送邮件
- 增加配置文件:spring-mail.xml
- Java代码发送邮件,依赖commons-emails包
7. 邮件任务流程监听器
-
流程监听器
- 审核通过:${flag==true}
- 审核拒绝:${flag==false}
-
创建流程监听器
-
设置监听器
-
测试
8. 定时任务(Quertz石英调度)
-
修改Activiti配置
-
执行任意流程
-
.定时任务的使用
-
Quertz石英调度
(1)定义定时任务类
(2)Spring集成Quertz配置文件
<?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:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd"> <!-- 独立的JAVA类及方法 --> <bean id="workJob" class="com.itstudy.crw.task.FinishWorkTask"></bean> <!-- 配置任务的具体类和方法 --> <bean id="workTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 要调用的bean --> <property name="targetObject" ref="workJob"></property> <!-- 要调用的Method --> <property name="targetMethod" value="finish"></property> <!-- 是否并发,false表示 如果发生错误也不影响下一次的调用 --> <property name="concurrent" value="false"></property> </bean> <!-- 配置一个触发器 --> <bean id="workTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="workTask"></property> <!--石英表达式,定义了任务的启动时间--> <property name="cronExpression" value="0/3 * * * * ?"></property> </bean> <!-- 总调度,用于启动定时器 --> <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers" > <list> <ref bean="workTrigger"/> </list> </property> </bean> </beans>
(3)Cron表达式详解
9. 流程管理 - 流程定义- 查询
- controller
问题:
解决:将List中数据使用Map存储,然后进行JSON数据格式化
10. 流程管理 - 流程定义- 部署
- 上传流程定义文件按钮
- 增加上传的表单,隐藏
- 给文件上传表单增加点击事件
- 处理文件上传
- 测试
11. 流程管理-流程定义-删除
12. 流程管理-流程定义-图片展示
将部署后的流程图片显示到客户端浏览器上
- 增加显示流程定义图片的链接
- 处理请求
- 显示页面
- 发起请求加载流程图片
- 处理请求
- 显示图片效果