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

2022-09-03 12:57:54

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

  1. 彼此之间有什么对应物和什么

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

  3. 我错过了上面的列表中哪些我不应该拥有的大牌?

任何人都可以给我一个高层次的介绍吗?在阅读了前两个答案之后,有人可以对Spring与OSGi进行更多解释吗 - 它们是否在单独的市场(企业与移动)中?

非常感谢


答案 1

“vs”是不正确的,因为其中许多可以一起使用。

  • OSGi是一种模块化技术(而不是框架)。它使您能够将软件分离到独立的模块中,这些模块可以在不同版本中共存,有或没有其他模块

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

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

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

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


答案 2

好吧,你可以试着读一些关于他们的东西吗?

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

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


推荐