(一)学习成果
创建activiti的表,直接将其中的sql复制出来执行就可以了
(小技巧,在lib中找包,将鼠标点击在lib中的随意一个包,英文输入法的状态下输入相应的包名可以快速找包)
(二)学习过程
跟大家一样,学习一个东西就在csdn上找资料,跑demo,当然我卡在第一步了,创建表一直不成功,大概创建表有2中读取resource下的activiti.cfg.xml文件,引入相应的文件,再在test中调用 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();就可以了,好吧,我试了一下午没成功,最后看到(一)中的sql。
(三)学习反思
,到了晚上,决定还是研究下,为啥创建表不成功,我就开始了debug看了源代码,感觉如果要自动创建表就应该就在ProcessEngineConfigurationImp这个类中的buildProcessEngine()方法了,中的initSessionFactories()中的initDbSqlSessionFactory()中this.addSessionFactory(this.dbSqlSessionFactory);这里调用了sessionFactory.getSessionType(),从dbSchemaCreate()
这样可以在DbSqlSession.class类被调用,因为DbSqlSession中的getResourceForDbOperation会拿到相应的sql文件最后执行创建的方法是第983行的executeSchemaResource()此方法,我的activiti版本是7.0.0.0Beta1,我分析源码到这里,这里是读取xml的自动创建表的地方,好吧debug都不进来,我真的是,下次遇见这种别人写的代码觉得要多找找方法。。。。