J2EE英文全称Java 2 Platform Enterprise Edition,J2EE是Sun公司为企业计算推出的企业级Java平台。
J2EE又是一种框架和标准,框架类似API、库的概念,但是要超出它们。
J2EE 是多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型 (enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中.所属层次包括客户层(clietn tier)组件,web层和组件,Business层和组件,企业信息系统(EIS)层.
J2EE标准主要有三种子技术标准:WEB技术、EJB技术和JMS,谈到J2EE应该说最终要落实到这三个子概念上。
上述是对J2EE的概念性描述,其实大家都是技术人,通俗化他们才是我们学习它们的最好向导。
也就是一套框架与标准,这套标准中主要强调中间组件层。利于分布式发布,也利于以后的商务逻辑扩展。中间件一般都以组件形式存在容器中,有WEB容器,EJB容器。每一套对这种J2EE的实现,都要支持WEB容器,支持EJB,支持JMS,支持JTS,支持JNDI(for RPC方式组件调用服务)等。
对于J2EE与相关的Java技术来说,最让人头痛的就是概念术语,也是很多人诟病Java与J2EE的原因,我10年前做过J2EE那时就较不喜欢这样的多的概念,京腔所云“玩概念”。当然J2EE更注重架构上的标准。这当然也会产生多更我的概念产。Java编码顺应了代码自动生成,面向模式,架构的技术趋势,C\C++这方面做得的确不如Java,我做C++时间要远多于Java所以是客观地表述我的观点。
很难以一言以敝之。但可以从不同角度去理解这些看上去让人眩目的理论与概念:
从组件化角度来看:
J2EE在容器基础之上,为组件建立了很好的相互结合又最小藕合的关系。通过自动生成ORM的EntityBean,自动生成可以经过RMI调用的组件,
从编程语言特性角度来看:
J2EE及相所使用的一些技术来看,无法是利用Java的代码可移植性,利用了Refection机制,方便的persistence封装。方便的各种功能库的封装及开源及代码自动生成。使之及兼容,及扩展,当然并不代表易维护。呵呵
对一个简单应用构建:
有成熟的UI层(SWING/基于BS的MVC框架),有成熟IO层封装与扩展(JDBC接口,网络接口,线程接口,文件,流)
从架构上来说:
较成熟固定的架构,这比起C++是一种优势,C++的一些设计模式对应的封装库例如()的成功就是佐证。