Java OSGi和依赖注入之间的关系是什么
他们彼此有什么不同Java OSGi和依赖注入之间的关系是什么,java,dependency-injection,osgi,Java,Dependency Injection,Osgi,他们彼此有什么不同 规范和实现 竞争对手 无关的 它们是不相关的 编辑: DI首先由描述,由指定 DI可以用于不同于Java的语言,OSGi是Java特有的 OSGi试图解决版本化组件的问题,DI是旧服务定位器模式的替代方案 它们在概念上是相关的,因为它们都提供了“关注点分离”机制 OSGI是在模块级实现这一点的——想想Eclipse体系结构,它有多个插件,每个插件负责特定的关注点/特性 DI是面向对象的——它提供了用连接在一起的多个对象构建应用程序的方法,每个对象负责其特定的功能 在技术上
- 规范和实现
- 竞争对手
- 无关的
- DI可以用于不同于Java的语言,OSGi是Java特有的
- OSGi试图解决版本化组件的问题,DI是旧服务定位器模式的替代方案
DI过去是一种具有多种实现和API的设计模式。然而,JCP最近做了一些工作,试图标准化DI API()OSGi规范由两部分组成:核心部分和概要部分 核心部分是Java模块系统的规范。因此,核心规范与DI的概念没有关系 另一方面,概要部分指定了OSGi容器可以提供的一系列服务。 在这些服务中,您可以找到“声明性服务规范”(OSGi简编服务,第112章),这是将熟悉的DI概念引入OSGi的第一次尝试。 想法很简单:由于OSGi允许开发人员实现、定义和注册服务,声明性服务规范使开发人员能够定义依赖于一系列其他底层服务的服务。在OSGi中,这是一个特别有趣(也是非常困难)的问题,因为根据定义,服务是不可靠的,它们可以出现也可以消失 除了声明性服务规范之外,至少还有另外两种流行的解决方案试图在OSGi中提供更强大的DI框架:
- ,是OSGi框架的扩展
- 的OSGi扩展