程序人生
JavaEE是一组建立在JavaSE之上的标准,解决企业级开发中的一系列问题.请特别留意,它仅仅是个标准,是对一系列接口的约定,众多厂商围绕这个标准做实现.如JBoss,WebSphere等.第一个版本的JavaEE 1.2在1999年被发布,到2017年的JavaEE8,已经经历了将近20年.那么JavaEE都有哪些标准,解决了什么问题呢?简单列举一下主要的标准:
Servlet:定义了如何处理Web请求,这个相信大家最熟悉
Java Server Faces:定义了如何使编写Web界面
JAX-RS:定义了如何编写RESTFul的接口
EJB:定义了如何编写“企业Bean”
JPA:定义了如何编写ORM和数据存取
JTA:定义了如何编写事务相关的代码
JMS:定义了如何编写消息队列程序
CDI:定义了如何编写依赖注入
JAX:定义了如何编写XML程序
JAX-WS: 定义了如何编写基于XML的网络服务,即SOAP
……
早期的Spring定位于解决JavaEE在实际使用上的一系列问题,总结了一套最佳实践,并总结到了一套框架里.其中最重要的,就是所谓IoC(控制反转).spring中其实大量使用或者实现了JavaEE标准.比如spring-mvc是在servlet基础之上的封装.spring本身并不提供容器,而是支持使用任何支持servlet标准的容器(如tomcat,jetty等),经过多年发展,Spring发布了很多组件:
spring-core:Spring的Bean的管理,控制反转和程序上下文
spring-mvc: web开发中的model-view-controller
spring-data: 数据层访问和封装
spring-boot: spring全家桶自助配置和部署管理工具
spring-batch:一个简单的批处理框架
spring-cloud:支持与许多云服务接口的整合
spring-security:认证和权限管理
……
Spring本身是JavaEE的一个子集,遵循JavaEE规范.
JavaEE7,JavaEE8,JavaEE9整体技术演进路线比较清晰,容易把握.
商用环境对JavaEE支持比较完善.
基于JavaEE标准的模块组装比较灵活,JSR的标准模块各大厂商都有实现,容易进行组合.
JavaEE迁移到Spring相对比较容易,相反Spring迁移到JavaEE就要复杂的多.
为了一些实践目的(减少尺寸,减少启动时间...)对war进行了少量的修改,都是基于JavaEE标准的.
JavaEE技术栈的更新能保持一贯性,相对容易学习.
如果您愿意可以直接使用Spring编写,Spring本身就运行在JavaEE容器中.
上一篇:没有了!
下一篇:没有了!