(三)java业务场景篇笔记库(43)

  一 .   servlet线程安全概述

1 ) . 分析 : servlet是单例的,对于所有请求都使用一个实例,因此若有全局变量被多线程使用的时候,就会出现线程安全问题

2 ) . 解决的三个方案 : 

2.1 实现singleThreadModel接口,这样对于每次请求都会创建一个新的Servlet实例,这样就会消耗服务端内存,降低性能,但是这个接口已经过时,不推荐使用

2.2 可以通过加锁(synchroniezd关键字)来避免线程安全问题.这时虽然还是单例,但是对于多线程的访问,每次只能有一个请求进行方法体内执行,只有执行完毕后,其

他线程才允许访问,降低吞吐量

2.3 避免使用全局变量,使用局部变量可以避免线程安全问题,强烈推荐使用此方法来解决servlet线程安全的问题

 

       二.  (jbmp4)工作流引擎描述


1 ) . 描述 : JPBM是jboss旗下的一个开源的基于hibernate的工作流引擎.

                1.1工作流就是在日常生活中,我们一些常见的如请假流程,采购流程,入职流程,通俗来讲就是一些在现实生活中的流程以信息化以程序的方式实现

                1.2 一个工作流首先需要进行流程定义,流程定义是由节点(环节,活动节点,活动环节)和跳转组成的!

                1.3 节点的两大类型 :

                人工节点 :  start开始节点,end结束节点,task任务节点

                自动节点 :  decision判断节点,fork分支节点,join聚合节点和state状态节点

                     一个流程有且只有一个开始节点,但可以由于多个结束节点

1.4 流程定义 : 它是静止的,它在运行状态时会转化为流程实例,一个流程定义可以对应多个流程实例

      流程运行 : ;流程运行后,产生两个文件,*.jdpl.xml文件和*.png图片文件,也会生成18张数据库表

                        常用且核心的表有 : JBPM4_LOB 存储表:  存储xml文件和png图片,

                                                     JBPM4_TASK任务表 :

                                                    JBPM4_EXECUTION流程实例表 : 

                                                    JBPM4_VARIABLE变量表
 


2 ) . 图形化的灵活定制(主动说)

2.1 可以根据需求进行流程图的改变,即定义的流程图是可以根据需要改变的,而不是死的

2.2 可以进行图形化的监控

2.3 输出图片

2.4 获取活动节点的坐标

2.5 进行叠加

2.6 判断节点 : 实现implements DecicionHandler接口并重写decide方法,返回的字符串要和xml中配置的transition的name保持一致

2.7 分支判断节点


3 ) .  JBPM有五大核心类 : 

3.1 ProcessEngine :主要获取各种的Service

3.2 RepositoryService : 主要发布流程定义

3.3 ExecutionService : 主要操作流程实例

3.4 TaskService : 主要操作人工服务

3.5 HistoryService : 主要操作历史服务

4 ) . 核心方法 : 

4.1 createDeployment() :  读取jbpm定义的文件生成zip包存到lob表中

4.2 createProcessDefinitionQuery : 获取流程定义列表

4.3 startProcessIntanceByKey(id) : 根据定义的key或id来启动流程实例

4.4 findPersonalTasks(userName) : 获取待办任务列表

4.5 completeTask(*.getActivityId()) : 完成指定任务列表

4.6 createHistoryTaskQuery() :  获取历史任务列表

4.7 task.getExecutionId() :  获取流程实例的ID


5 ) .了解的表 : 

5.1 JBPM4_HIST_ACTINST : 流程活动(节点)实例表

5.2  JBPM4_HIST_DETALL   : 流程历史详细表

5.3 JBPM4_HIST_PROCINST : 流程实例历史表

5.4 JBPM4_HIST_TASK      :  流程任务实例历史表

5.5 JBPM4_HIST_VAR        :  流程变量(上下文)历史表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值