BluePrint 如何理解

来源:互联网 发布:php mysqli query 编辑:程序博客网 时间:2024/05/29 11:04

Blueprint,极其类似Spring,实际上,这两个规范的源头是一个。

 

Blueprint是一个实现了osgi规范的,注入性依赖容器的,配置规范。

Blueprint对于Servicemix的作用,好比,spring对于web开发框架的作用:

      1,Blueprint实现了osgi规范,karaf是osgi容器的实例,servicemix基于karaf完成包的发布功能等功能,karaf是servicemix的一部分,是其中的一个工具;

      2,spring实现了Spring规范,spring是web程序开发框架的一部分,是其中的一个工具。

 

所谓Blueprint实现了osgi规范,是指,Blueprint里定义的元素名,子元素名,元素属性等等,

都是osgi规范里标定的内容,比如,osgi里要求bundle要能被注册,能被bind,能被启动等,

相应的,Blueprint里,有service元素,reference元素,bean元素,分别代表服务,对服务的引用,服务的实现bean,

这三者,分别可以注册,bind,启动。

 

 

对于Bundle,有三种重要的状态: 1, registered / unregistered   2, bind / unbind  3, init / destroy

在Blueprint里, 如果是Bean,那么,它有init / destroy;

在Blueprint里,如果是服务引用(reference 或 reference list),那么,它有bind / unbind

在Blueprint里,如果是服务(service),那么,它有registered / unregistered

这些状态,被Blueprint规范为回调函数,如,

bean元素可以指定init-method=”xxx” destroy-method=”yyy”

reference元素可以指定<reference-listener bind-method=”xxx” unbind-method=”yyy”>

service元素可以指定<registration-listener  registration-method=”register” unregistration-method=”unregister”>

 

0 0
原创粉丝点击