当我刚开始在OSGi的样子,我的印象是,你可以只建立一个JAR和,只要它有一个清单文件,你可以在一个OSGi容器部署下。我想像一个经典的方式构建我的模块(maven),也许使用某种插件或类似的东西来编写清单,然后我可以让我的模块基本上是一个独立的应用程序,通过OSGi与其他模块进行通信。的OSGi模块/捆绑粒度
进一步阅读关于OSGi,我开始看到一个更低水平正在使用它的更多的例子,基本上取代依赖注入和如日志提供横切关注点服务。似乎使用诸如hibernate或其他的东西,是一个问题...(或者我只是错过了一些东西)。
至少对我而言,我并没有真正看到如此精细的模块化和整合到OSGi的水平,我宁愿有一个单独的模块,每个模块都有自己的一套技术和框架,以及可能的Web资源和持久层。这是OSGi可以实现的吗?如果是的话,你能指出我正确的方向,例子等吗?
编辑,加入我如何尝试使用OSGi的一些细节:
我只是设想有一个以上级模块的可能性,这可能有一个更higher-层级责任。
好比说议程模块。在这种情况下,我希望拥有诸如事件的持久性,添加事件,使用过滤器列出事件等等。 此议程可能有几个内部类,甚至可能需要持久层。所以我想用Guice这样的东西去DI这些类,还有一些JPA来坚持我的数据。
我能理解一些X切关注像服务器或记录可以有一个包,但数据模型是特定议程束。所以我认为我的问题到底是什么?什么是不可能在捆绑内做的?作为一种惯例,应该做什么和不应该做什么?
谢谢! 毛
因此,如果我使用OSGi就绪框架(guice?),我可以继续使用它们在我的包内? – Mauricio 2013-03-04 16:26:06
是的,这将起作用然而,我的(相当广泛的)经验是,当你编写像Spring这样的非常模块化的代码框架时,Guice等往往会失去其主要价值,因为问题变得如此之小以至于这些框架感觉相当超重。一个好的包是一致的,然后你通常不需要这些框架的开销。然而,在OSGi世界中没有任何东西禁止你加入这个重量:-) – 2013-03-04 17:42:03