我知道EJB在业务逻辑的企业应用程序中是事实上的标准。但是,osgi声明性服务可以执行EJB所做的很多事情。两者都由容器管理,两者都可以用作单例,两者都可以与CDI一起使用。我发现的差异是:
EJB解释其使用标准的其他重要优势是什么?
修改
我问这个问题的原因如下 - 我们想要开发一些可用于SE和EE平台的业务逻辑。这就是为什么DS似乎是一个更好的解决方案。然而,EJB和DS是两个宇宙,我们害怕遗漏一些重要的东西。
答案 0 :(得分:4)
我在Apachecon 2015上就OSGi上的企业应用程序进行了一次演讲。它主要涵盖DS vs blueprint,因为Java EE支持尚未在OSGi上完全准备就绪。您仍然应该找到主要的企业用例以及如何在DS中执行这些用例。
请参阅http://www.slideshare.net/ChristianSchneider3/osgi-productivity-compared-on-apache-karaf
答案 1 :(得分:0)
<强>都不是。强>
使业务逻辑不依赖于这两种技术,因为它们会限制您的选择,并且您已经知道需要在Java SE上运行。
良好的书面业务逻辑几乎没有依赖性,并且使用单元测试进行了充分测试。
结果模块jar可以用于Java EE和OSGi。 如果您需要同时支持两者,则必须使用最少的常用功能。
POJO也是标准的,但绝对不复杂的方法。EJB解释其使用标准的其他重要优势是什么?
答案 2 :(得分:-1)
OSGi更多的是用于定义应用程序的结构,而EJB更关心的是处理逻辑并让容器定义结构。
看到你的问题与在JEE和Java SE应用程序中使用业务逻辑有关,EJB听起来是更好的选择,特别是考虑到OSGi JEE支持还没有准备好。
实际上我实际上建议实际使用像mule或WSO2这样的ESB,并且只需要在Java SE应用程序中提取的服务器端共享的业务逻辑。