JavaEE和Spring框架的区别

JavaEE和Spring框架的区别,spring,spring-mvc,jakarta-ee,Spring,Spring Mvc,Jakarta Ee,我正在努力了解JavaEE和Spring框架之间的区别。有人能帮我一下吗。Java EE: 应用服务器供应商遵守的Sun/Oracle标准 基于企业javabean 由许多供应商实施:BEA/Oracle、WebSphere、JBOSS、Glassfish等 春天: 不是一个标准;它是Rod Johnson的创意,由Spring/VMWare实现 不基于企业javabean;这是一个POJO模型。如果希望使用EJB,可以管理EJB,但不是必需的 除Spring以外的任何供应商均未实施 EJB3.

我正在努力了解JavaEE和Spring框架之间的区别。有人能帮我一下吗。

Java EE:

  • 应用服务器供应商遵守的Sun/Oracle标准
  • 基于企业javabean
  • 由许多供应商实施:BEA/Oracle、WebSphere、JBOSS、Glassfish等
  • 春天:

  • 不是一个标准;它是Rod Johnson的创意,由Spring/VMWare实现
  • 不基于企业javabean;这是一个POJO模型。如果希望使用EJB,可以管理EJB,但不是必需的
  • 除Spring以外的任何供应商均未实施

  • EJB3.1从Spring中获得了很多东西。现在它包括依赖注入、方面的一种形式和JPA。EJB3.1比EJB2.0更接近Spring。

    JavaEE是一个全功能企业应用程序框架堆栈的标准、官方规范。包括对象关系映射、安全性、Web应用程序、数据库连接、事务

    除了JavaEE规范之外,还有JavaEE实现/应用服务器,如JBoss、Glassfish、WebSphere和Weblogic


    另一方面,Spring是一个框架,它在JavaEE规范上做了很多工作,但它有自己的形式。他们没有遵循JavaEE规范和API。但它们确实包括一个Web框架、事务管理、安全性和Java EE提供的其他几个解决方案。

    我在这里概述了Java EE

    这还包含一个与Spring的小比较,这可能与这个问题有关。

    JavaEE:

  • Java EE业界认可的基于API的标准框架
  • 它主要基于注释和CDI
  • 用于web开发的JFC MVC框架
  • 处理数据库操作的JPA规范
  • jtaapi及其实现
  • EJB容器和基于POJO的实现
  • Oracle许可证
  • 春天:

  • 基于IOC和AOP
  • 基于XML配置(现在他们正在利用注释)
  • 使用SpringDAO框架(基于模板设计模式)连接到数据库
  • 提供抽象层以支持各种JTA实现供应商
  • 与各种Java供应商集成以支持不同的功能,如struts等
  • 提供一个端到端平台来构建web应用程序,使用DI和AOP实现松耦合
  • 开放源码许可证

  • 我不完全同意你的回答。说JavaEE基于EJB有点牵强。是的,EJB在JavaEE中扮演着重要的核心角色,但它不是一项基础技术。此外,EJB3.1还没有从Hibernate中吸取任何东西。JPA从Hibernate获得了很多东西(Hibernate从TopLink获得了很多东西,TopLink比它早了很长一段时间)。EJB3.1使使用JPA变得更容易,但它肯定不包括JPA。最后,EJB3.1确实从Spring获得了一些东西,JavaEE社区应该永远感谢Rod。编程模型现在非常相似,主要在细节上有所不同。EJB2.0bean与Springbean完全相反。最近,Springbean开始追随EJB bean,EJB bean开始在XML上使用注释,在配置上使用约定。Spring是否也将遵循CDI的类型安全注入还有待观察(注意CDI在Java EE中是一个非常重要的API,它本身不基于EJB,但仅能够与EJB集成)。注意Java EE实现,如JBoss、TomEE等,不附带“Oracle许可证”,但是有一个普通的开源许可证,比如GPL或Apache。