Mini 容器介绍

背景

最早在开发Mbs 中的插件架构时用服务定位器和服务注册表来屏蔽各大DI容器的差异,后来为了更深入的研究DI 容器的内部实现机制,便开发了Mbs DI容器->Mini容器前身,在开发过程中借鉴了Castle,Unity,Ninject,StructureMap,Spring等思想尤其是Castle容器的工厂以及生命周期管理器等思想。最近一段时间不太忙便重新整理Mbs框架,由于Mbs框架命名不是太好(最早是开发消息总线的),不能描述框架具体包含什么内容,于是便开发Nlite 框架,该框架旨在提供一个轻量级的组件库(DI,Aop,MessageBus, MVP,AddIn,OO Mapper,国际化)等 ,刚开始便拿最核心的DI容器进行开刀,吸收和借鉴MEF中的插件思想来进行打造,该DI容器经过了几个项目的验证,并做了很详细的单元测试,代码覆盖率达到90%多,为DI容器的稳定性打下了坚实的基础。通过开发DI容器以及AOP,在很多方面都有了新的认识,如果不是亲自开发过很多思想是很难体会的。

Mini 容器默认支持以下几种组件注册机制

  • Attribute 注册
  • 流畅Api 注册
  • 代码注册
  • 自定义注册

Mini 容器所支持以下几种生命处理方式

  • Singleton :单利
  • Thread:对于每一个线程来说是使用了Singleton,也就是每一个线程得到的都是同一个实例
  • Transient:每次的请求得到的都是一个新的实例
  • Generic Singleton :泛型单利
  • Generic Thread :泛型线程内单利
  • Generic Transient:泛型临时

Mini 容器缺省提供以下几种依赖注入方式

  • 构造函数注入
  • 字段注入
  • 属性注入
  • 方法注入

Mini 容器所支持以下几种组件工厂

  • 缺省工厂
  • 工厂方法工厂
  • 代理工厂(供Aop使用)
  • 实例工厂(该工厂仅仅提供驻留外部组件实例)
  • 自定义工厂

组件监听器的监听阶段(LifestyleStage)

  • OnComponentMetadataRegistered - 组件元数据被注册后
  • OnComponentCreated - 组件创建后
  • OnComponentDestroying - 组件释放中
  • OnComponentDestroyed -组件释放后

Mini 容器通过组件监听器可以对DI容器进行扩展,系统缺省提供以下组件监听器

  • SupportInitializeListner :组件初始化监听器
  • InitializationListner :组件初始化监听器
  • DisposalListner :组件释放监听器
  • StartableListner :组件启动/停止监听器
  • AopListner :Aop监听器
posted @ 2010-07-06 16:48 风云 阅读(...) 评论(...) 编辑 收藏