Java OSGi vs Spring vs Struts vs EJB vs Hibernate——完全是新手';问题

Java OSGi vs Spring vs Struts vs EJB vs Hibernate——完全是新手';问题,java,hibernate,spring,struts,osgi,Java,Hibernate,Spring,Struts,Osgi,我对这些“框架”“组件”一点也不熟悉,但有人能给我简单介绍一下它们之间的关系吗?基本上,我想大致了解: 什么和什么是相互对应的 什么和什么是互补技术(例如,A作为框架可以与B作为组件一起使用) 我错过了上面列出的哪些我不应该错过的大牌 有人能给我一个高层次的介绍吗?在阅读了前两个答案之后,有人能对Spring和OSGi做更多解释吗?它们是在不同的市场(企业和移动)吗 非常感谢嗯,你可以试着读一些关于他们的东西吗 Struts-是一个用于在JavaServlet“技术”之上创建网站的框架 Spr

我对这些“框架”“组件”一点也不熟悉,但有人能给我简单介绍一下它们之间的关系吗?基本上,我想大致了解:

  • 什么和什么是相互对应的

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

  • 我错过了上面列出的哪些我不应该错过的大牌

  • 有人能给我一个高层次的介绍吗?在阅读了前两个答案之后,有人能对Spring和OSGi做更多解释吗?它们是在不同的市场(企业和移动)吗


    非常感谢

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

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

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

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

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

    • Struts——一个MVC、基于操作的框架——用于web层

    • EJB——JavaEE的业务组件——您将业务逻辑放在企业JavaBeans中,并且您有现成的事务处理、状态处理、(JMS)消息消耗、计时器等

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


    我还建议您阅读一些关于。Google的家伙们努力解释所有与web相关的架构。

    你能评论一下“Spring和OSGi是互补的”部分吗?EJB的目的是提供一个分布式组件模型,包括(全局)事务处理、安全性等(其他一切都是非技术性的营销和商业相关的东西)。区分EJB2.x和EJB3.x也是有意义的,因为它们几乎没有共同点(Spring是对EJB2.x的反应,EJB3.x是可以在类似Spring的嵌入式容器中运行的POJO)。事实上,我个人对EJB3.x没有太多负面的评论。@sean-是的,我不知道该用什么词。Spring拥有近几年的OSG-D本身,尽管我没有在EJB3.0上使用它的任何更新,关于“它们失败了(有点),因此Spring”+ 1,但是我认为Spring的一部分,你指的是一个容器而不是一个框架(销售它作为框架是市场的一部分,但它确实是一个容器)。.春天不仅仅是春天。没有人对AOP有他们应该想到的那么多。Spring凳子有三条腿:DI、AOP和模块。但是OSGi也是一个容器。vs对于OSGi和Spring对来说是正确的,Spring看起来显然是赢家。