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”>
原文地址:http://www.cnblogs.com/kephatis/p/3973484.html