Chapter 1. Why Spring Dynamic Modules?
The Spring Framework is the leading full-stack Java/JEE application framework. It provides a lightweight
container and a non-invasive programming model enabled by the use of dependency injection, AOP, and
portable service abstractions. The OSGi Service Platform offers a dynamic application execution environment
in which modules (bundles) can be installed, updated, or removed on the fly. It also has excellent support for
modularity and versioning.
Spring Dynamic Modules makes it easy to write Spring applications that can be deployed in an OSGi execution
environment, and that can take advantage of the services offered by the OSGi framework. Spring's OSGi
support also makes development of OSGi applications simpler and more productive by building on the
ease-of-use and power of the Spring Framework. For enterprise applications, the combination of Spring
Dynamic Modules and the OSGi platform provides:
• Better separation of application logic into modules, with runtime enforcement of module boundaries
• The ability to deploy multiple versions of a module (or library) concurrently
• The ability to dynamically discover and use services provided by other modules in the system
• The ability to dynamically install, update and uninstall modules in a running system
• Use of the Spring Framework to instantiate, configure, assemble, and decorate components within and across
modules.
• A simple and familiar programming model for enterprise developers to exploit the features of the OSGi
platform.
We believe that the combination of OSGi and Spring offers a comprehensive model for building enterprise
applications.
The OSGi Alliance found valuable the programming model proposed by Spring DM and, in OSGi 4.2,
standardized it by introducing the Blueprint Container, as part of the Compendium services.
本文介绍了Spring Dynamic Modules (SpringDM)如何简化Spring应用程序在OSGi环境中的部署,并利用OSGi提供的服务。通过SpringDM,开发者可以更好地实现模块化应用逻辑,同时支持多版本模块并行部署。此外,SpringDM还提供了动态发现及使用系统中其他模块的服务的能力,以及在运行系统中动态安装、更新和卸载模块的功能。
619

被折叠的 条评论
为什么被折叠?



