jbpm开发实战----委托

委托任务是我所遇到的项目中客户经常提到的,下面介绍下我的实现思路。

所谓委托,就是给A的待办,A设置了委托人B,此时,程序应该做到自动给B,最多是B处理以后给A发一个阅示任务,查看处理的情况。

这里面发现有经典的切面的影子,即任何setActor和setPooledActors都是先检查待办人是否设置了委托人,如果设置了就把任务给委托人。java领域的切面编程,大家都知道可以用jdk的InvocationHandler接口,也可以用cglib的动态代理来实现,经试验,发现jbpm的源码中有很多地方写的不地道,没有面向接口编程,导致InvocationHandler接口这种方式不能使用,无奈,只能研究cglib字节码增强,生成子类的方式实现这个切面编程了,很快,cglib生成子类的方法算是成功了,但是又发现cglib动态生成的这个子类的对象不能持久化到数据库,因为hibernate配置文件中,配置的是Taskinstace这个类,之前记得hibernate的延迟加载中有用cglib来实现,参考了Gavin King大师的源码,终于一口气实现了这个切面编程,初步测试通过了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值