(三)java业务场景篇笔记库(43)
2017-12-31 00:11
176 查看
一. 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.3JBPM4_HIST_PROCINST : 流程实例历史表
5.4JBPM4_HIST_TASK : 流程任务实例历史表
5.5JBPM4_HIST_VAR : 流程变量(上下文)历史表
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.3JBPM4_HIST_PROCINST : 流程实例历史表
5.4JBPM4_HIST_TASK : 流程任务实例历史表
5.5JBPM4_HIST_VAR : 流程变量(上下文)历史表
相关文章推荐
- (三)java业务场景篇笔记库(37)
- (三)java业务场景篇笔记库(45)
- (三)java业务场景篇笔记库(44)
- (三)java业务场景篇笔记库(38)
- (三)java业务场景篇笔记库(36)
- (三)java业务场景篇笔记库(39)
- (三)java业务场景篇笔记库(40)
- (三)java业务场景篇笔记库(41)
- (三)java业务场景篇笔记库(42)
- java温故笔记(三)java的反射机制和场景应用
- Java基础知识强化之IO流笔记43:IO流练习之 复制文本文件的 5 种方式案例
- Java练习笔记 -ThreadLocal的一种应用场景
- (43)Java学习笔记——IO流 / 字符流 / 编码表
- 【实战\Java SSM快速开发仿慕课网在线教育平台项目笔记】第2章 项目各种结构概览(业务, 技术,角色,数据库,项目)
- Redis学习笔记3 Java + Redis模拟秒杀场景
- Java学习笔记43:Java泛型
- JAVA学习笔记43——其他容器简介1:Queue+Deque+Enumeration
- 将「南通青鸟 IT 教育 96 班同学在 3 教室上陆老师的 Java 课」这个场景进行业务类的抽象
- Java并发28:ThreadLocal学习笔记-简介、基本方法及应用场景
- (43)21.4.3 中断---Java编程思想之并发笔记