JavaEE
JavaEE 概念
网上一般会讲JavaEE的13个规范,实际上JavaEE 7 规范不止13个,加粗的是实现了这些规范的框架:
Web层
提供Web交互,数据传输等方面的组件
- 关注于为客户端生成各种格式内容的视图模块:JSP JSTL EL JSF
- 关注于Web实时交互的模块:WebSocket Java API——SpringBoot框架
- 关注于提供Web服务的Java Web Service模块:JAX-WS JAX-RS——SpringBoot框架
- 关注于交互数据规范的模块:JSON-P JAXB
- 关注于Web请求和响应的模块:Servlet——SpringBoot框架
企业信息层(EIS)
提供与其他企业中间件或服务交互的组件
- 关注于与数据库交互的模块:JDBC——Hibernate框架、SpringData Jpa框架
- 关注于Java持久化的模块:JPA——Hibernate框架、SpringData Jpa框架
- 关注于Java信息服务的模块:JMS——ActiveMq消息中间件
- 关注于Mail服务的模块:JavaMail API
- 关注于与遗留系统交互的模块:JCA
- 关注于执行批量任务的模块:Batch——Spring Batch3.0批处理框架
通用(Common)
提供公用组件
- 关注于上下文与依赖注入的模块:CDI——Spring框架
- 关注于整合安全的模块:JACC JASP JAAS
- 关注于JavaEE平台规范注解的模块:JavaEE通用注解(JavaEE common Annotation)
- 关注于数据校验的模块:Bean验证API(Bean Validation)——Hibernate Validator验证框架
- 关注于JavaEE管理的模块:JavaEE管理API(JavaEE Management API)
- 关注于提供查找组件,资源或服务的间接层模块:JNDI
业务层(Core)
提供简化业务逻辑编写的组件
- 关注于用于开发可移植,可重用,可伸缩的企业应用编程模型:EJB
- 关注于用于开发简化的,轻量级的,容器管理的,基于POJO的编程模型:托管Beans(Managed Beans)
- 关注于提供面向切面编程的模块:拦截器API(Interceptor)
- 关注于提供事务管理的模块:JTA
- 关注于优化并发编程的模块:JavaEE并发工具包(Concurrency Utilities for Java EE)
只要知道了JavaEE包含哪些规范,就能知道自己大概要掌握哪些技术了。
PS:用Bean Validation框架校验真的很省事啦~
JavaSE
JavaEE 与 JavaSE 的区别与联系
JavaEE和JavaWeb的区别
JavaEE的技术包括两个部分,开发B/S架构(网站)和C/S架构(客户端)的内容,也就相当于网页版和桌面客户端的区别,B/S架构的那一套也就是我们所说的JavaWeb,C/S架构也就是桌面应用(客户端),所以说JavaEE包含了JavaWEB,这也就是JavaEE和JavaWeb的区别。
同样的,对于JavaWeb服务器和JavaEE服务器的区别,tomcat是JavaWeb服务器,tomEE是JavaEE服务器,tomEE包含tomcat。
使用Java开发的桌面客户端比较少,最有名的要属Eclipse了,Eclipse就是用java开发的桌面应用。至于为什么java很少用来开发桌面应用,这又是一个具有争议话题了。
JavaEE与Java 的关系
Java刚开始的时候,因为各种应用和生态不成熟,很多东西需要有人牵头制定强制规范引导Java的发展,于是Java EE曾经引领了企业级应用的开发。
但随着时代的进步,以及越来越多的公司和组织参与到Java世界,出现了各种各样的Java EE组件的代替者,比如Hibernate、Spring就是其中两个典型。相反,Java官方制定的各种Java EE规范反而不太受欢迎,他们制定了JSF规范,但实际企业开发喜欢用Struts 2、Spring MVC;他们制定了EJB规范,但实际企业开发往往还是喜欢用Spring;他们制定了JPA规范,但实际企业开发往往还是喜欢直接用Hibernate、MyBatis。
现代企业级应用常用的各种框架和工具,比如Struts 2、Spring、Hibernate、jBPM、Activiti、Lucene、Hadoop、Drools、CXF等这些大家耳熟能详的组件,全部都不是来自Oracle官方,但是却在企业应用中开发经常用到的。
现在企业里面,真正常用的JavaEE规范有什么?Servlet、JSP、JMS、JNDI。这些技术都只是充当了一个程序的入口而已。
Oracle之所以可能考虑放弃Java EE,正体现了Oracle对丧失Java控制权的无奈。企业的本质是逐利,Oracle每年为制定Java EE规范投入不少人力、财力,但制定的规范最终并没有获得市场的青睐,所以Oracle可能放弃这种吃亏不讨好的事情。
但Java不同,2016年6月,Java在商业语言排行榜上的市场份额将近21%,庞大到恐怖的市场份额,背后隐藏着巨大各种专利使用费和盈利商机,任何一个理智的公司都不会放弃这个会下金蛋的母鸡。
由此可见,oracle上提供的java EE是官方指定的javaEE规范,里面都是符合官方指定的javaEE组件,我们用SSM,SSH开发后台时使用到的只有Servlet、JSP、JMS等少量的java EE规范,没有必要使用orcale提供的java EE版本,直接使用jdk就可以(当然还需要maven等管理第三方的jar包来实现功能)
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217198.html原文链接:https://javaforall.net
