JBPM IOC实现
什么是IOC IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。简单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。 IOC的优点和缺点 IOC有利于降低组件之间的依赖,对于改变子类实现,只需要更改xml就可以了,类似于热插拔。 IOC本身也有其缺点,组件的实例化步骤变复杂了;同时需要依赖反射,影响对象构建效率。 JBPM IOC实现 JBPM自己实现了一套IOC方案,下面分步骤详述JBPM的IOC实现方案。 Xml配置文件 jbpm.wire.bindings.xml:包括jbpm流程引擎用到的各种对象的binding类。 jbpm.jpdl.bindings.xml: 包括流程引擎执行中用到的活动的binding类。 jbpm.cfg.xml:jbpm的根配置文件,引入jpbm所需的所有配置文件。这是jbpm引擎运行 的代码执行入口 代码实现需要的类 各种binding类:定义在配置文件中使用的tag(如hibernate-session);解析配置文件 xml,并将相关的配置数据设置到实例化的响应的Descriptor中。 各种descriptor类:根据自己的相关数据,利用反射构建相关的对象实例并返回。 BindingParser: 解析jbpm.wire.bindings.xml,并构建相应的binding实例。 WireParser:解析jbpm.cfg.xml,通过binding构建descriptor。 WireContxt:IOC的控制容器,负责实例化相关的对象。 综述 虽然jbpm实现的IOC不够彻底,但是总体的思想还是很符合IOC思想的!同时流程引擎对流程定义的解析也使用了相似的原理,感兴趣的网友可以自己研究! 无风听海 2011-04-16
相关文章
- 对Spring IoC容器实现的结构分析
- 基于TLS(线程局部存储)的高效timelog实现
- Springboot项目中自定义的实现WebMvcConfigurerAdapter 的类中的重写方法addViewControllers 无法映射,映射后报错:Whitelabel Error Page (springboot关于addViewController无法映射页面问题)
- vue实现表计监测界面
- Android开发实现NFC刷卡读取的两种方式
- spring5 源码深度解析----- IOC 之 容器的基本实现
- 【SSH进阶之路】Spring的IOC逐层深入——依赖注入的两种实现类型(四)
- Spring学习3—控制反转(IOC)基于Annotation(注解)的依赖注入实现
- 使用Python,OpenCV实现简单的场景边界/拍摄转换检测器
- 2022-07-08 Unity Json3——实现简单的Json数据管理器JsonMgr
- PictureSelector图片选择器封装,只需两句就可以实现初始化获取结果
- 【慕课网】如何实现 可迭代对象和迭代器对象(天气查询)
- 如何在ASP.NET Core应用中实现与第三方IoC/DI框架的整合?
- Webpack2 + Vue2 + Vue-Router2 如何实现懒加载?
- 数据库连接池:数据库编程-Connection的实现