我正在使用 Equinox,因此 Equinox Aspect 项目似乎很容易,但该项目似乎处于非活动状态,并且只有一页文档让我挂在最后。
除了那个项目,我没有看到很多在 OSGI 中使用 AOP 的选项。让我知道你们的想法和可能性是什么,谢谢:)
最大的问题显然是缺乏标准化的加载时间编织。Equinox Aspects and the weaver(由 AJDT 使用)是目前唯一的选择。好消息是,OSGi 工作组正在积极推进字节码编织,并将“很快”标准化。如果你现在真的需要一些可靠的东西,你最好的选择仍然是编译时编织。恕我直言,无论如何,这是一种更好的方法,至少对于 AOP 作为设计时活动,因为它最初设想..
作为替代方案,您还可以考虑使用 Apache Felix 依赖管理器,它允许您在运行时将拦截器添加到现有的 OSGi 服务。当然,这绝不是完全的 AOP 替代品,但对于某些用例来说,这可能就足够了。
您可以在此处找到更多文档和示例:
http://felix.apache.org/site/apache-felix-dependency-manager-osgi-design-patterns.html
我不知道任何替代方案,但我不认为 Equinox Aspects 处于非活动状态。它甚至在即将发布的Helios版本中获得了新功能。