Java EE 是什么?

大部分java的工程师会这样给出Java EE的定义:一个企业级的Java开发包,比Java SE 多出来一些包。说对也对,说对也不对,算是一个模凌两可的答案。这也是我很长一段时间对Java EE的印象。今天就聊聊,Java EE究竟是什么。

Java EE,Java平台企业版(Java Platform Enterprise Edition),是Sun公司为企业级应用推出的标准平台。Java EE 是一系列技术标准所组成的平台。

维基百科

维基百科给Java EE的定义是一个企业级开发的标准平台,与之前模棱两可的答案不同的是,维基百科给出了一个重要的定义:Java EE是一系列技术标准所组成的平台。 这个就是Java EE 比Java SE 多出来一些包的真面目,这些多出来的包,实际上是一系列技术标准的API。从耳熟能详的JSP,Servlet,JDBC,JNDI,JMS,到EJB,JAXP等等,都属于Java EE 的技术标准。

为什么要指定这些技术标准?

言技术标准的制定,很好的统一了不同技术方案提供商之间的技术实现差异。这对于工程师而言无疑是一个福利,这样在替换技术方案时,不会产生很高的成本。同时,这也是技术提供商的一个福音。虽然恪守别人指定的标准规范,会有诸多不便(技术标准也有有缺点的时候,恪守有时候意味着牺牲自己产品的一些优良特性),但是当客户(这里也就是工程师Or企业)可以以很低的成本迁移技术方案时,对于技术提供商而言,就意味着有更多潜在的市场可以争取。这也就是为什么会有很多技术提供商愿意去支持Java EE的原因。

都有哪些常用的Java EE 组件?

JSP+Servlet

这无疑是最常用的Java EE 组件,按照规范,所有想要进入这个市场的Java Web容器必须能运行遵循标准写法的Servlet和JSP文件。Tomcat是遵循这种规范的一个Java Web容器,除此以外还有jetty,WebSphere等等。

JDBC

Java EE 用来规范数据库程序访问的应用程序接口,定义了创建连接,增删改查,批量操作,事务等一列标准接口,数据库厂商会实现自己的数据库驱动程序,例如mysql的数据库驱动com.mysql.jdbc.Driver。

JMS

Java EE 用来规范消息服务的一组应用程序接口,用于在两个应用程序之间,或者分布式系统中发送消息,进行异步通信。最常见的技术提供商为Apache ActiveMQ。

Java EE 今后的发展趋势

这里引一个知乎的链接,赞同最多的答案已经很好的回答了这个问题。

现在(2016)J2EE还有什么用?

Java EE 作为一个企业级应用的技术标准集合,在大型的应用中,还是占有举足轻重的地位。一方面是Java EE在企业级应用方面算是久经考验,稳定性没得说(虽然重了点),在一个想要盈利而又不很极客的企业里,Java EE的稳定性几乎就已经决定了其主导地位。另外一方面,一个公司从招聘上来说,JSP+Servlet几乎是所有培训机构的指定套餐,招聘一个Java EE的工程师,相对来说成本会低很多,所以说到盈利,Java EE又拿下一城。最后一方面,历史遗留,一个发展了4到5年的Spring项目想要转型成其他的技术方案,无疑是一个艰巨的,周期很长的任务,耗时耗力耗财,而且,谁又知道在转型的过程中会不会又出现什么更好的方案呢?与其一开始犹豫,还不如一条道走到黑。

但是,不得不承认的是,Java EE 已经走下神坛,或者说,它就一直没上去过。