Java EE和Spring框架之间的区别

Sid*_*Sid 17 spring spring-mvc java-ee

我正在努力了解Java EE和Spring Framework之间的区别.有谁可以帮我这个.

Pab*_*ruz 18

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

除Java EE规范外,还有JavaEE 实现/应用程序服务器,如:JBoss,Glassfish,WebSphere,Weblogic.

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


sun*_*007 10

Java EE:

  1. Java EE行业批准了基于标准API的框架
  2. 它主要基于注释和CDI
  3. 用于Web开发的JFC MVC框架
  4. 用于处理DB操作的JPA规范
  5. JTA API与实现
  6. EJB容器和基于POJO的实现
  7. Oracle许可证

弹簧:

  1. 基于IOC和AOP
  2. 基于XML配置(现在他们正在利用注释)
  3. 使用Spring DAO框架(基于模板设计模式)连接数据库
  4. 提供抽象层以支持各种JTA实现供应商
  5. 与各种Java供应商集成,以支持不同的功能,如struts等
  6. 提供端到端平台,构建Web应用程序,使用DI和AOP实现松散耦合
  7. 开源许可证

  • 请注意,Java EE实现(如JBoss,TomEE等)不附带"Oracle许可证",但具有普通的开源许可证,如GPL或Apache. (3认同)

duf*_*ymo 6

Java EE:

  1. 应用程序服务器供应商遵守的Sun/Oracle标准
  2. 基于Enterprise Java Bean
  3. 由许多供应商实施:BEA/Oracle,WebSphere,JBOSS,Glassfish等.

弹簧:

  1. 不是标准; 它是Rod Johnson的创意,由Spring/VMWare实现.
  2. 不是基于Enterprise Java Bean; 这是一个POJO模型.如果您希望使用它们,可以管理EJB,但不是必需的.
  3. 除Spring之外的任何供应商都没有实现.

EJB 3.1从Spring中获得了很多.现在它包括依赖注入,方面的形式和JPA.EJB 3.1比Spring 2.0更接近Spring.

  • 最后,EJB 3.1确实从Spring获取了东西,Java EE社区应该永远感谢Rod.编程模型现在非常相似,主要区别在于细节.EJB 2.0 bean完全与Spring bean相反.最近,Spring bean遵循EJB bean,它开始使用基于XML的注释和约定优于配置.还有待观察,Spring是否也将遵循CDI的类型安全注入(请注意,CDI是Java EE中非常重要的API,它本身不是基于EJB,而只是能够与它集成). (3认同)