- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
当我第一次开始研究 OSGi 时,我的印象是您可以构建一个 JAR,只要它有一个 list 文件,您就可以将它部署在一个 OSGi 容器中。我设想以经典方式 (maven) 构建我的模块,并可能使用一些插件或类似的东西来编写 list ,然后我可以让我的模块基本上是一个独立的应用程序,通过 OSGi 与其他模块通信。
进一步阅读有关 OSGi 的内容,我开始看到更多在较低级别使用它的示例,这些示例基本上取代了依赖注入(inject)并提供了诸如日志记录之类的横切关注点服务。似乎使用 hibernate 或其他东西是一个问题......(或者我可能只是遗漏了一些东西)。
至少对我来说,我真的不明白拥有如此高水平的模块化和与 OSGi 的集成有什么意义,我宁愿有一个单独的模块,每个模块都有自己的一套技术和框架,可能还有网络资源和持久层。这可以通过 OSGi 实现吗?如果是,您能否指出正确的方向、示例等?
编辑,添加了一些我尝试使用 OSGi 的更多细节:
我只是在设想拥有一个以上的模块的可能性,它可能具有更高级别的责任。
比如议程模块。在这种情况下,我想要诸如事件持久性、添加事件、使用过滤器列出事件等...这个议程可能有几个内部类,甚至可能需要一个持久层。所以我想使用类似 Guice 的东西来 DI 这些类,并使用一些 JPA 来保存我的数据。
我可以理解一些 X-cutting 问题,如服务器或日志记录可以有一个包,但数据模型是特定于议程包的。所以我想我的问题是在最后什么是 bundle 内可以做什么和不能做什么?作为一般做法,在室内应该做什么和不应该做什么?
谢谢!毛里西奥
最佳答案
您可以使用 OSGi,而无需在应用程序代码上强制依赖 OSGi。然而,由于 OSGi 提供模块化,中间件(您的层)需要了解一些 OSGi 知识。问题在于,在模块化世界中,您想隐藏实现细节,这就是全部目的。然而,诸如 Spring 和 Hibernate 之类的东西倾向于假定类路径没有边界,并且它们会一头扎进栅栏。幸运的是,越来越多的中间件正在为此做好准备,我听说 Hibernate 现在已经在努力,JPA 也可以在 OSGi 中使用。
关于java - OSGi 模块/包粒度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15203655/
我有 2 个事实表,每个表都有一个度量组,生产和生产订单。生产具有较低粒度的生产信息(在组件级别)生产订单具有较高级别的信息(具有抬头数量等的订单级别)。 我在 productionorderid 的
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我第一次尝试了解 Akka/Actors,并且对每个 Actor 职责的粒度有点困惑。 在我的应用程序中,有可以使用 WidgetRegistrar 注册/取消注册的 Widget。要向 Regist
我们一直在使用 MVP 模式和 Winforms,并取得了相当大的成功。然而,关于 MVP 总是弹出一个问题: 对于演示者来说,什么是好的粒度? 我的意思是:对于 Winforms,细粒度通常适用于用
我通常使用 git add -p 添加更改,而且很多时候有几个代码块的大块头,由空行分隔。 但是,git 不会进一步拆分 大块头,我不得不求助于手动编辑。 如何增加 hunk 的粒度,以便每个代码块都
例如,我看到 dumps.wikimedia.org/other/pagecounts-raw/,但那里没有特定国家/地区的数据... 最佳答案 据我所知,没有。出于明显的隐私原因,发布的页面查看统计
JavaScript 的源映射似乎通常不比 token 粒度更精细。 例如,identity-map uses token granularity . 我知道我看过其他例子,但不记得在哪里。 为什么我
我有这些目录: ./Tools ./ook/Tools. 我在 setup.cfg 中的 py.test 的 norecursedirs 选项中添加了 Tools。正如预期的那样,当 py.test
我正在使用这个 Accelerometer graph来自 Apple 并尝试转换他们的 G-force 代码以计算 +/- 128。 下图显示标签中的 x、y、z 值与图表上的输出不匹配:(请注意,
此问题围绕 Android 应用程序的架构展开。 在使用 LifeCycle 组件 ViewModel 时,最好是每个 fragment 一个 ViewModel 还是订阅 fragment 的父 A
我是一名优秀的程序员,十分优秀!