//by yan 20211228

Activiti里有几个session工厂类

DbSqlSessionFactory

默认实现:DefaultSqlSessionFactory

EntityManagerSessionFactory 、SpringEntityManagerSessionFactory

默认实现:jpa的EntityManagerFactory

GenericManagerFactory

用于构造EntityCache

//ProcessEngineConfigurationImpl.java// session factories public void initSessionFactories() {if (sessionFactories == null) {sessionFactories = new HashMap<Class<?>, SessionFactory>();if (usingRelationalDatabase) {initDbSqlSessionFactory();}addSessionFactory(new GenericManagerFactory(EntityCache.class, EntityCacheImpl.class));}if (customSessionFactories != null) {for (SessionFactory sessionFactory : customSessionFactories) {addSessionFactory(sessionFactory);}}}public void initDbSqlSessionFactory() {if (dbSqlSessionFactory == null) {dbSqlSessionFactory = createDbSqlSessionFactory();}dbSqlSessionFactory.setDatabaseType(databaseType);dbSqlSessionFactory.setIdGenerator(idGenerator);dbSqlSessionFactory.setSqlSessionFactory(sqlSessionFactory);dbSqlSessionFactory.setDbHistoryUsed(isDbHistoryUsed);dbSqlSessionFactory.setDatabaseTablePrefix(databaseTablePrefix);dbSqlSessionFactory.setTablePrefixIsSchema(tablePrefixIsSchema);dbSqlSessionFactory.setDatabaseCatalog(databaseCatalog);dbSqlSessionFactory.setDatabaseSchema(databaseSchema);dbSqlSessionFactory.setBulkInsertEnabled(isBulkInsertEnabled, databaseType);dbSqlSessionFactory.setMaxNrOfStatementsInBulkInsert(maxNrOfStatementsInBulkInsert);addSessionFactory(dbSqlSessionFactory);}public DbSqlSessionFactory createDbSqlSessionFactory() {return new DbSqlSessionFactory();}public void addSessionFactory(SessionFactory sessionFactory) {sessionFactories.put(sessionFactory.getSessionType(), sessionFactory);}
...// JPA// //public void initJpa() {if (jpaPersistenceUnitName != null) {jpaEntityManagerFactory = JpaHelper.createEntityManagerFactory(jpaPersistenceUnitName);}if (jpaEntityManagerFactory != null) {sessionFactories.put(EntityManagerSession.class, new EntityManagerSessionFactory(jpaEntityManagerFactory, jpaHandleTransaction, jpaCloseEntityManager));VariableType jpaType = variableTypes.getVariableType(JPAEntityVariableType.TYPE_NAME);// Add JPA-typeif (jpaType == null) {// We try adding the variable right before SerializableType, if// availableint serializableIndex = variableTypes.getTypeIndex(SerializableType.TYPE_NAME);if (serializableIndex > -1) {variableTypes.addType(new JPAEntityVariableType(), serializableIndex);} else {variableTypes.addType(new JPAEntityVariableType());}}jpaType = variableTypes.getVariableType(JPAEntityListVariableType.TYPE_NAME);// Add JPA-list type after regular JPA type if not already presentif (jpaType == null) {variableTypes.addType(new JPAEntityListVariableType(), variableTypes.getTypeIndex(JPAEntityVariableType.TYPE_NAME));}}}

Activiti源码 之工厂模式相关推荐

  1. android工厂模式源码,Android源码设计模式——工厂模式

    工厂模式也是为了构建一个新的对象,它是创建型模式的一种. Android源码设计模式--Build模式(应用:AlertDialog源码分析) 上述是之前的Build模式,也是创建型模式一种,不懂的小 ...

  2. Activiti源码之建造者模式 Builder

    建造者模式介绍 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 一个 Builder 类 ...

  3. Activiti源码分析(框架、核心类。。。)

    Activiti源码分析(框架.核心类...) 目录 概 述 activiti源码分析(一)设计模式 总结: 相关工具如下: 分析: 小结: 参考资料和推荐阅读 LD is tigger foreve ...

  4. activiti源码编译

    分享牛原创(尊重原创 转载对的时候第一行请注明,转载出处来自分享牛http://blog.csdn.net/qq_30739519) activiti源码编译,近期有人问activiti 源码编译的一 ...

  5. JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的。

    JDK源码解析 迭代器模式在JAVA的很多集合类中被广泛应用,接下来看看JAVA源码中是如何使用迭代器模式的. 看完这段代码是不是很熟悉,与我们上面代码基本类似.单列集合都使用到了迭代器,我们以Arr ...

  6. 【flink】Flink 1.12.2 源码浅析 : yarn-per-job模式解析 TaskMasger 启动

    1.概述 转载:Flink 1.12.2 源码浅析 : yarn-per-job模式解析 [四] 上一篇: [flink]Flink 1.12.2 源码浅析 : yarn-per-job模式解析 Jo ...

  7. 【flink】Flink 1.12.2 源码浅析 : yarn-per-job模式解析 JobMasger启动 YarnJobClusterEntrypoint

    1.概述 转载:Flink 1.12.2 源码浅析 : yarn-per-job模式解析 [三] 上一章:[flink]Flink 1.12.2 源码浅析 : yarn-per-job模式解析 yar ...

  8. 【flink】Flink 1.12.2 源码浅析 : yarn-per-job模式解析 yarn 提交过程解析

    1.概述 转载:Flink 1.12.2 源码浅析 : yarn-per-job模式解析 [二] 请大家看原文去. 接上文Flink 1.12.2 源码分析 : yarn-per-job模式浅析 [一 ...

  9. 【flink】Flink 1.12.2 源码浅析 : yarn-per-job模式解析 从脚本到主类

    1.概述 转载:Flink 1.12.2 源码浅析 : yarn-per-job模式解析 [一] 可以去看原文.这里是补充专栏.请看原文 2. 前言 主要针对yarn-per-job模式进行代码分析. ...

最新文章

  1. [JS]正则式的使用示例:替换字符串中所有指定内容
  2. 2015化妆品行业如何进行微信公众号营销
  3. Why am I getting this error “Expected resource of type raw” in Android Studio?
  4. 定制化Azure站点Java运行环境(1)
  5. python获取当前年份_Python根据当前日期取去年同星期日期
  6. 鹅厂后台开发工程师的工作日常
  7. myeclipse如何换一个漂亮的主题
  8. 创业者应该了解的五大无服务器AWS服务
  9. idea中有些类明明在jar包里有,但是却搜不到
  10. java 实现 PDF 转 TIF 【彩色压缩版】
  11. 皮尔逊相关系数(Pearson Correlation)
  12. 看华为心声社区的几篇总裁办电子邮件有感
  13. Flink_Flink ON YARN containerized.heap-cutoff-min 内存调整
  14. 写一个块linux设备驱动
  15. 关于chrome、360浏览器自动填充的黄色背景处理方案
  16. oracle 查找索引大小写,关于sql:Oracle中不区分大小写的搜索
  17. javase(数组练习)
  18. 《程序员的自我修养》后感【1】
  19. 「镁客早报」FF称恒大健康公告内容“部分不属实”;特斯拉实现汽车日产7000辆目标...
  20. Arm64平台搭建交叉编译开发环境-以FT1500a cpu+Kylin4.0.2-sp2系统为例

热门文章

  1. QT+SQLite 判断表中是否含有指定字段
  2. C#解析json文件的方法
  3. IOS之Swift的CoreData入门使用案例
  4. vs2013和mysql连接_安装VS2013后与数据库的连接问题
  5. json web token没有哪个成分_【分享项目】给你看看我们公司的登录认证是怎么做的?!(SpringBoot+Shiro+Token+Redis)...
  6. java 子进程id,Java程序如何获得自己的进程ID?
  7. java 反射内部匿名内部类_android-反射的使用(反射静态内部类、非静态内部类、匿名内部类等)...
  8. QT多国语言加载qm文件不起效果问题总结
  9. c++11中thread join和detach的区别
  10. Android通过使用系统广播监听网络状态的改变