J2EE的企业应用十分地广泛和成熟,但在模块化方面还缺乏合适的解决方案,OSGI则正好可以弥补这方面的缺憾。但OSGI又偏偏是个底层的元素,如果要使J2EE和OSGI结合起来,就需要将J2EE应用从底层开始改造,就如你想将旧楼改造成更高的楼,需要重新将地基弄坚实点一样。
为了能让OSGI适应企业应用开发的需要,OSGI制定了一些企业开发规范,将J2EE己有的DI,持久化,事务等等好的东西都纳入其中。
Aries是Apache的一个开源项目,它分为很多子项目,都是实现了OSGI在企业应用方面的规范,例如:Aries blueprint container,Aries JPA container等等。
首先,Aries blueprint container是用于OSGI DI(IOC)的一套开源实现。Blueprint是OSGI定义的一个规范,它是来源于鼎鼎大名的spring。spring为了支持OSGI,发展一个叫spring dynamic module(spring DM)的项目,但估计是因为spring实现本身有些在classloader方面与OSGI格格不入的原因(这是我个人的看法,大家别嘘我),spring DM转给了eclipse,发展出了virgo.
而OSGI则从spring DM中抽象出blueprint规范出来。Aries blueprint container则是这个规范的一种实现。和传统spring一样,blueprint可以在bean里注入依赖。除此之外,blueprint还可以实现OSGI服务的发布和引用,支持OSGI的服务引用的注入,而且这种依赖的注入是动态的,也就是说你可以将很多OSGI服务动态地组合成更粗粒度的OSGI服务。
Blueprint和spring十分相似,同样采用XML的方式来组装应用(当然也有用annotation的方式来实现的)。在Aries blueprint container里,将Blueprint的XML配置文档放在Bundle里的OSGI/blueprint目录下,bundle就会被Aries blueprint container认为是个blueprint的应用,这里的XML文档就会被解析,并按XML的内容来组装应用,其中的服务引用的动态性,都会由container来维护。在Servicemix里,甚至可以直接解析一个blueprint的XML文档,而不需要将它放进bundle里。
除了DI外,在Servicemix里,blueprint还被用于camel路由的定义等方面,这很大程度扩大了blueprint的应用范围。
分享到:
相关推荐
OSGI企业应用开发(十五)基于Spring、Mybatis、Spring MVC实现一个登录应用博文源码
深入理解OSGi:Equinox原理、应用与最佳实践.pdfOSGi应用开发
利用R-OSGi实现分布式OSGi应用 本文通过介绍传统 OSGi 应用程序及 R-OSGi 的实现方式入手,阐述了 R-OSGi 对于 OSGi 规范的实现方式。然后通过一个简单的功能实现由浅入深地讲述传统 OSGi 和 R-OSGi 上的两种不同...
OSGI企业版本的技术规范,OSGI核心框架
扩展Tomcat支持OSGi应用服务项目文件。其项目为eclipse工程。项目说明请参见我的blog《扩展Tomcat支持OSGi应用服务》:http://blog.163.com/haizai219@126/blog/static/44412555200971223629869/
开发一个简单的 OSGi Web 应用实例,如何进行OSGI开发的 实例有利于入门着进行使用
资源名称:OSGI原理与最佳实践内容简介:国内第一本OSGi图书OSGi国内推广者林昊多年经验的结晶涵盖OSGi从入门到深入的知识体系引领OSGi国内研究和普及本书基于作者多年使用OSGi的经验而编写,涵盖了OSGi从入门到深入...
OSGI 在 J2EE 环境下的应用越来越广泛,目前在 Servlet 应用中使用 OSGI 有两种方式:Servlet Container in OSGI 和 OSGI in Servlet Container. 前一种:和普通的 OSGI bundle 开发差不多,而后一种:Equinox 提供...
osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍osgi介绍
OSGI企业应用开发(十四)整合Spring、Mybatis、Spring MVC博文源码
《Java应用架构设计 模块化模式与OSGi》PDF版本下载
Equinox开发OSGi应用程序
NULL 博文链接:https://zoukk449-126-com.iteye.com/blog/1132940
基于OSGi和Spring开发企业级Web应 目前OSGi和Spring已经受到了广泛的关注,如果我们将OSGi和Spring结合,更能充分发挥二者各自的特长,同时更好地满足企业级应用开发的需求。
讲OSGI应用的讲OSGI应用的讲OSGI应用的讲OSGI应用的讲OSGI应用的
辛苦研究了一个多月,终于搭建成了一个可用于实际应用开发的OSGI-WEB框架,采用OSGi+SpringMVC+Spring+Hibernate+Virgo技术,鉴于此类技术架构甚少,特提供出来供大家参考。 使用步骤: 一、下载STS搭建Osgi开发...
基于OSGi和Spring开发Web应用
《深入理解OSGi Equinox原理、应用与最佳实践 》完整版。OSGI相关书籍,非扫描版!!!高清文字版!!!
其后进入OSGi实战,结合实例讲解如何基于OSGi框架编写模块化、动态化的各种Java应用;最后对OSGi知识进行深入讲解,通过对OSGi规范和实现框架(Equinox、Felix、Spring-DM和Apache CXF)的分析,以及最佳实践的介绍...
Java应用架构设计模块化模式与OSGi