OSGI Blueprint

来源:互联网 发布:本科生导师制 知乎 编辑:程序博客网 时间:2024/05/22 12:24

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://killko.blog.51cto.com/3419292/1131090

    Blueprint是OSGI的一个规范,它来源于spring dm.目前主要有aries和gemini两套实现,本文以aries的实现为基础。大致来说Blueprint是一个OSGI的IOC规范。对于熟悉spring的朋友来说,应该会十分容易上手。 

    Blueprint也是以xml文档来构建应用,但它也有采用Annotation的方式,我们在此只介绍xml的方式。 

    在Bundle里,这个xml默认的位置在OSGI-INF/blueprint下,也可以在manifest.mf里指定其它位置上的xml文档。

    当一个包含blueprint xml文档的bundle install并resolved,并且active后,Aries blueprint container就会开始解析这个文档。 

    在处理这些xml文档的过程中,bundle还会有个blueprint的状态,区别于bundle的状态。这些状态包括Graceperiod,created,fail。其中created就是blueprint container已经解析完文档,并且文档中mandatory的依赖都得到满足了,这时blueprint的应用已经组装完毕。而Graceperiod则是应用正在组装中。fail是当blueprint无法解析xml文档或者是mandatory的依赖在超时时间内未能获得满足。 

    在spring的应用中,通常生成或组装的是bean或者bean工厂。而在Blueprint里,还可以发布和组装OSGI service。而OSGI service的动态性也要求Blueprint container的组装过程是动态的,这方面,我们在后续的blog里再详细描述。 

本文出自 “色声香味触法” 博客,请务必保留此出处http://killko.blog.51cto.com/3419292/1131090


0 0
原创粉丝点击