OSGi 应用程序设计 - 我是否滥用服务框架? [关闭]

2024-04-28

在我们正在开发的应用程序中,我有一个供数据提供程序组件实现的通用接口,并且我将这些提供程序作为服务连接起来。

我的一位同事建议,最好只创建一项可以跟踪这些实现的服务(当前有多少个实现可用,也许可以通过 getters 将它们提供给代码库的其他部分),并且我们可以注册/取消注册它们使用实施包的激活器。

虽然这通常可以工作,但这(几乎)正是服务层首先提供的,对我来说,感觉就像我们在重复功能。

你怎么认为?


您的用例是服务注册表的主要 OSGi 用例之一。服务注册表主要用于此类需要在非耦合模块之间共享实例的应用程序。

使用服务注册表您可以获得:

  1. 声明式服务或蓝图等工具允许您不耦合到 OSGi API
  2. Eventing
  3. 内省
  4. 并发性
  5. 任何模块都可以为池做出贡献,而无需更改中央配置
  6. 通过强大的过滤器进行选择(运行时可通过 DS 进行配置)
  7. 现有 shell 的可调试性
  8. 标准化

OSGi 的主要目的始终是为其他人提供服务以供使用的独立模块,例如黑板编程模型。这提供了一个非常优雅的点对点解耦编程模型。整个类加载之战始终掩盖了这一方面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OSGi 应用程序设计 - 我是否滥用服务框架? [关闭] 的相关文章

  • 使用 powershell 从远程服务器获取服务状态

    如何获取需要用户名和密码登录的远程计算机的服务状态 我正在尝试使用以下代码找到解决方案 serviceStatus get service ComputerName machineName Name service 默认语法为get ser
  • 查看 osgi 包的依赖关系?

    我正在 Eclipse 中寻找一个可以以图形方式查看所有 osgi 包的依赖项的工具 请问有人有什么想法吗 STAN 捆绑包和项目依赖关系视图是免费的附加组件 这是一个依赖关系图示例 http stan4j com images stori
  • 使用“旧”对象引用使用构建器模式创建新对象

    我正在尝试构建器模式 并陷入如何向新创建的对象添加新 属性 的困境 public class MsProjectTaskData private boolean isAlreadyTransfered private String req
  • OSGI - 处理捆绑包所需的第 3 方 JAR

    我刚刚开始 OSGI 开发 正在努力了解如何最好地处理依赖的 JAR 也就是说 如果我要创建一个捆绑包 我很可能需要使用一些第 3 方 JAR 当我创建要部署到 OSGI 的捆绑包 JAR 时 显然不包含这些第 3 方 JAR 因此该捆绑包
  • C++ 包装类的设计

    我必须使用一个界面非常笨拙的旧类 由于我无法更改它并且依赖它 因此我想构建一个包装器 提供一个干净的界面 假设我有课笨手笨脚的班级 基本上 我有三种方法 1 参考会员 Class Wrapper public Wrapper ClumsyC
  • 为什么我收到错误“错误 C2259:...无法实例化抽象类”?

    任何帮助都是appriced 我正在研究 C 工厂模式 但收到此错误 1 gt c users brian documents visual studio 2010 projects cst276lab 3 guitar hpp 456 错
  • ByteBuddy 变基、合成类型和 OSGi

    我为 byte buddy 开发了以下拦截器 public class SecurityInterceptor RuntimeType public static Object intercept SuperCall Callable su
  • 与竞争的消费者顺序处理消息

    Problem 我以特定顺序 FIFO 在队列上接收消息 比如订单 我的队列中有竞争的消费者 为了进一步增加复杂性 消费者可能只对订单的特定版本感兴趣 具体取决于其状态 例如版本 1 版本 2 和版本 5 订单版本号在订单上可用 但不能用于
  • 使用上下文加载器加载资源失败并出现 NullPointerException

    我只是想知道为什么我无法使用 Felix OSGi 中的线程上下文加载器加载资源 我是否不应该接触上下文加载器 我是否做错了什么或者这是一个错误 我有一个超级简单的捆绑包 带有一个简单的激活器 public class Activator
  • 业务代表与服务定位器

    Business Delegate 和 Service Locator 之间有什么区别 两者都负责封装查找和创建机制 如果 Business Delegate 使用 Service Locator 来隐藏查找和创建机制 那么 Busines
  • 作为服务运行时未找到 PowerShell 模块

    我有一个项目 我将 Office 365 许可证分配给用户 有一个 Web 项目允许管理员查看可用许可证并为用户选择许可证 在后台 有一项服务每 15 分钟执行一次实际的许可证分配 以及许多其他任务 我们不直接分配许可证的原因是用户可能尚未
  • 如何在视图中调用 Grails 服务?

    简单的问题 我有一个服务类 比方说helpersService 和一个方法def constructURI params 如何从模板视图调用此方法 我尝试了以下代码但没有成功 img src 但我得到以下结果 No signature of
  • 如何为 Apache POI 3.8 创建工作 OSGI 包?

    我的目标是创建 Excel 2007 文档 XLSX 在 Eclipse RCP 环境中 Excel 2003 很简单 我不想将 POI jar 放在 lib 文件夹中 相反 我想使用目标定义中的工作 POI OSGI 包 到目前为止我所有
  • SC创建binpath错误

    我正在尝试在 PowerShell 中运行以下命令 sc create StrongSwan binpath C Users Kanishk Desktop Strong Strong stronswan strongswan 5 6 3
  • NHibernate 中具有不同类型答案的问题

    我正在尝试找到一个问卷问题的简洁解决方案 假设我有一个Questionnaire类有一个集合Answers e g public class Questionnaire public virtual ISet
  • 服务作为 SOA 中的中介

    我知道什么是 通常的 中介设计模式 维基百科中有一些描述 http en wikipedia org wiki Mediator pattern http en wikipedia org wiki Mediator pattern 在我的
  • Joshua Bloch 的构建器设计模式有何改进?

    早在 2007 年 我就读过一篇关于 Joshua Blochs 所采用的 构建器模式 的文章 以及如何修改它以改善构造函数和 setter 的过度使用 特别是当对象具有大量属性 其中大部分属性是可选的 时 本文对此设计模式进行了简要总结
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • 静态库中的单例类

    假设我在静态库中有一个单例类 S 它可以与其他动态库 D1 D2 D3 链接 因此 据我了解 类 S 在每个 D1 D2 和 D3 中都会有一个单独的实例 即使它不是单例 如全局 这也是正确的 有什么办法可以防止S类的多副本吗 我无法将单例
  • @Autowire注释的问题(空)

    我在验证器类中自动连接的两个服务有问题 这些服务工作正常 因为在我的控制器中是自动连接的 我有一个 applicationContext xml 文件和 MyApp servlet xml 文件 我的基础包是 es unican meteo

随机推荐