zoukankan      html  css  js  c++  java
  • 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监听器
  • 相关阅读:
    注意身体
    用生命去战斗
    来到华师,一切清零
    linux fork()函数 转载~~~~
    小端大端
    位域
    内存泄漏(memory leak)和内存溢出
    stack,heap的区别
    内存管理简便复习总结
    虚函数&&虚继承
  • 原文地址:https://www.cnblogs.com/netcasewqs/p/1772255.html
Copyright © 2011-2022 走看看