OSGi vs Spring vs Struts vs EJB vs. Hibernate - 一个全新的问题

sea*_*ean 13 java spring struts osgi hibernate

我根本不熟悉这些"框架""组件",但有人可以给我一个关于他们彼此之间关系的介绍吗?基本上,我想大致知道:

  1. 什么和什么是彼此的对应物

  2. 什么和什么是互补技术(例如,作为框架的A可以与B一起用作组件)

  3. 我错过了什么大名单,我不应该有哪些?

谁能给我一个高级介绍?在阅读前两个答案后,有人可以给出关于Spring与OSGi的更多解释 - 他们是在不同的市场(企业与移动)吗?

非常感谢

Boz*_*zho 13

"vs"是不正确的,因为其中许多可以一起使用.

  • OSGi是一种模块化技术(而不是框架).它使您能够将软件分离为可以在不同版本中共存的独立模块,无论是否有其他模块

  • Spring - 轻量级依赖注入容器.它允许您通过定义它们的依赖关系并让框架实例化和配置它们来连接组件,从而允许更大的灵活性(这里不能说更多的流行语).

  • Struts - 一个MVC,基于动作的框架 - 用于Web层

  • EJB - JavaEE的业务组件 - 您将业务逻辑放在Enterprise JavaBeans中,并且您具有开箱即用的事务处理,状态处理,(JMS)消息消耗,计时器等

  • Hibernate - 一种ORM(对象 - 关系映射)解决方案 - 基本上,当您将关系数据库作为数据存储时,它允许您使用对象(oop).

  • 春天不仅仅是DI.没有人像他们应该那样想到AOP.弹簧凳有三条腿:DI,AOP和模块. (4认同)

oxb*_*kes 10

好吧,你可能会尝试阅读有关它们的内容吗?

  • Struts - 是一个在Java servlet"技术"之上创建网站的框架
  • Spring - 是一个依赖注入"容器",用于管理Java程序的配置(即将组件连接在一起)
  • Hibernate - 用于桥接关系数据库(RDMS)和面向对象程序的对象关系映射框架.
  • EJB - 是Java Enterprise Edition规范的一部分.其中的重点是从Oracle,BEA和IBM销售大量昂贵的应用服务器.他们失败了(好吧,有点); 因此春天
  • OSGi - 是一个"容器",用于管理由多个组件组成的应用程序,您希望在不重新启动系统的情况下交换模块的实现(或升级它们).它开始面向手机市场,我从来没有真正遇到过"在企业中"

这些在某种程度上是正交技术,即它们不是相互排斥的.例如,Spring现在与OSGi互补,而servlet技术是Java EE的一个子集.

  • 你能评论"Spring和OSGi是互补的"部分吗? (3认同)