javaEE和javaweb的区别
JavaEE
JavaEE 概念
Java EE,Java 平臺企業版(Java Platform Enterprise Edition),之前稱為Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名為 Jakarta EE(這個名稱應該還沒有得到群眾認可)。是 Sun 公司為企業級應用推出的標準平臺,用來開發B/S架構軟件。JavaEE指的是一套規范,也可以認為是遵循JavaEE規范、使用JavaSE實現的技術和框架。
JavaEE 是 Java 應用最廣泛的部分。
例如:
JavaSE包含socket的內容,JavaEE則是提出JSR902、JSR903規范,按照規范中的要求把socket封裝成Servlet供直接使用;
JavaSE包含annotation和自定義注解API(Pluggable Annotation Processing API)的內容,JavaEE則是提出JSR269規范,所有框架中定義的注解都必須符合該規范,典型的例如lombok中的@Getter/@Setter注解就是符合JSR269規范的,當然你也可以依據JSR269的要求,自己實現一個@Getter/@Setter注解;
這就是JavaEE和JavaSE的區別,目前官網上最新的是JavaEE7的內容:
JavaEE7
網上一般會講JavaEE的13個規范,實際上JavaEE 7 規范不止13個,加粗的是實現了這些規范的框架:
Web層
提供Web交互,數據傳輸等方面的組件
企業信息層(EIS)
提供與其他企業中間件或服務交互的組件
通用(Common)
提供公用組件
業務層(Core)
提供簡化業務邏輯編寫的組件
關于JavaSE規范和JavaEE規范,參考:
JavaSE規范,Java規范,JSR規范全面整理
只要知道了JavaEE包含哪些規范,就能知道自己大概要掌握哪些技術了。
PS:用Bean Validation框架校驗真的很省事啦~
JavaSE
$java_home/jre/lib/rt.jar里的全部內容,比如java目錄下的lang包、util包、io/nio包等14個包的內容,一般是一些基礎類庫,例如包裝類、collection、concurrent并發包、函數式接口、反射、注解等,簡單粗暴的講,JavaSE就是jdk包含的內容;
JavaEE 與 JavaSE 的區別與聯系
JavaEE 是在 JavaSE 的基礎上構建的,是對 JavaSE 的擴展,增加了一些更加便捷的應用框架。除了 EE 和 SE,還有為移動端而生的 JavaME,但目前應用不算廣泛。三者的關系可以用下圖概括:
JavaEE和JavaWeb的區別
JavaEE的技術包括兩個部分,開發B/S架構(網站)和C/S架構(客戶端)的內容,也就相當于QQ網頁版和QQ桌面客戶端的區別,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包來實現功能)
總結
以上是生活随笔為你收集整理的javaEE和javaweb的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 订单业务流程图(仿淘宝)
- 下一篇: 二本考生考研复试331分逆袭390分上岸