Spring与OSGi集成及Spring Dynamic Modules详解
1. Spring与OSGi集成基础
在Java生态系统中,Spring和OSGi能够解决互补性的问题。OSGi可以从Spring的IoC/DI方法中获益,而Spring则能借助OSGi的动态加载和版本管理能力。为了支持二者的集成,需要关注多个应用层,包括应用设计、应用打包和应用服务器层。
在开发Spring - OSGi的Hello World应用时,有一些操作步骤:
1. 可以在Eclipse Equinox的config.ini文件中添加四个声明,包含应用的捆绑包,这样Hello World应用就能在Apache Felix会话启动时自动启动。
2. 当系统中所有四个Spring - OSGi Hello World应用捆绑包都启动后,打开浏览器并访问URL http://localhost:8080/
,就能看到一个完全基于Spring - OSGi原则设计的端到端应用。
2. Spring Dynamic Modules for OSGI核心概念
Spring Dynamic Modules for OSGI(Spring - DM)有着重要的核心概念,包括扩展器(Extenders)和片段(Fragments)。
2.1 扩展器(Extenders)
扩展器模型指的是一个捆绑包扫描另一个捆绑包的内容,并代表被扫描的捆绑包执行操作。在Spring - DM中,当OSGi清单或捆绑包内容中存在特定扩展时,会自动触发一系列事件,即创建一个Spring上下文。这个上下文会在捆绑包的整