Guice 是一个很好的框架,可以将 API 与实现分离并开始模块化您的应用程序。OSGi 是一个很好的框架,可以在他们自己的安全环境中加载版本化服务,并通过导出的 API 提供这些服务。
假设已经使用 Guice 开发了一个应用程序,并且它的大小现在证明迁移到 OSGi 以将早期模块转换为新的完整服务是合理的,那么执行此迁移的驱动步骤是什么?
我正在寻找指导原则、逐步完成的任务清单、战争经验、提示、注意事项等...
在使用声明式服务 (DS)(如 Felix SCR)时,OSGi 已经为服务提供了依赖注入。这是 OSGi 中的标准,对于跨不同 OSGi 框架的可移植性,DS 是可行的方法。我认为 Peaberry 正在做标准 DS 正在做的事情,但是以 Guice 的方式。
如果我要将 Guice 应用程序移植到 OSGi,我会在每个 bundle 中保留 Guice 依赖注入,并使用 DS 在 bundle 之间注入服务,以保持与所有 OSGi 框架的兼容性。
您可以查看Peaberry,它旨在连接 OSGi 和 Guice 的世界。