工作流模板缓存方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工作流模板的缓存方案
通过测试如果把工作流的模板进行缓存可以解决目前工作流存在提交效率低下的问题,当模板进行缓存后,提交的时间至少要缩短3秒以上,从而大大的提高了效率。
缓存模板的理由:
由于目前在工作流中,模板平凡发布的情况是比较少的。这样就给数据缓存提供了前提条件,对于不是经常更变得数据,但是又是常用的数据进行缓存可以极大地提高程序运行的效率。
缓存模板的实现方案:
缓存模板的实现方案有一种,但是有两种不同的实现。
缓存的方案就是把数据加载的内存中,当需要数据时直接从内存里面取出就可以了不用再去查询数据库了。
实现方式:
1.缓存模板到内存用JAVA的UTIL类实现
优点:容易理解,容易实现。
缺点:如果增加了内容需要同时修改程序的代码。
2.使用spring的cache机制实现。
优点:程序是可配置的,当增加内容后不用去修改程序,可以任意配
置模板存在内存中的时间,有广泛的使用成功经验。
缺点:配置比较麻烦
使用spring的cache机制实现的部分代码:
Xml配置:
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBea n">
class="org.springframework.cache.ehcache.EhCacheFactoryBean">
class=".picc.claim.bpm.cache.MethodCacheInterceptor">
class="org.springframework.aop.support.RegexpMethodPointcutAdviso r">
class="mon.JbpmInterface">
class="org.springframework.aop.framework.ProxyFactoryBean">
Java代码实现:
package .picc.claim.bpm.cache;
/**
*@author周柳E-mail:zhouliu@
*@version创建时间:2007-11-19下午02:47:22
*@company中科软科技股份有限公司
*@version 1.0
*/
import java.io.Serializable;
import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.springframework.beans.factory.InitializingBean;
/**
*
*拦截器,用于缓存方法返回结果.
*
*
*
*@version$Id:MethodCacheInterceptor.java v 1.02004-11-2814:57:00 Znjq Exp$
*
*@authorZnjq
*
*/
public class MethodCacheInterceptor implements MethodInterceptor, InitializingBean {
private Cache cache;
/**
*
*sets cache name to be used
*
*/