JavaEE 7技術一覽

jopen 10年前發布 | 91K 次閱讀 JavaEE J2EE Java開發

JavaEE 體系結構非常膨大,從javaEE 5到現在的javaEE 7,新特性層出不窮。如果把一些偏門技術算進去,如一些基于JVM平臺的Grails、Scala,主流SSH框架,谷歌的GWT,BPM工作流的 JBPM、Activiti,Vaadin,OSGI,Apache組織一大堆協議組件和庫,各種開源模版技術,各種搜索引擎,各種規則引擎等等,沒有你 想不到的,只有你不知道的。盡管如此,JavaEE足以解決企業開發的所有問題。

JavaEE 7提供了一個完整、全面、集成的堆棧來幫助你構建企業和Web應用程序。

JavaEE容器

主要就是JSF(JavaServer Faces)和EJB(Enterprise Java Bean)兩大部分,JSF依賴于EJB,并且是重量級的,JSF使用了一大堆組件控制頁面,跟Struts2的標簽差不多;EJB目前做得不錯,相比 Spring,EJB完全不需要作任何配置,內部包含JPA規范,可以和Hibernate無縫接入,但是學習曲線依然很大,并且對服務器有要求,用 tomcat做服務器還需要和JBoss搭配,新手學習可以使用Glassfish。

JavaEE 7技術一覽

WEB容器

這部分內容比較多,JavaEE 7新添加的為下圖棕黃色的部分,即WebSocket、Concurrency Utilities、Batch、JSON-P,新添加部分主要是為HTML5提供更好的伸縮性,這些Spring都有,不知是否是借鑒Spring的部 分功能。技術雖然很多,其實都有JSR白皮書規約的,有些已經有最終定稿,有些還處于草案和不斷修改階段(其實也沒有最終定稿,而是處于維護階段)。

JavaEE 7技術一覽

下面說說一些常見的概念術語:

JWS:即Java Web Service,指與webservice相關的JavaEE技術部分,webservice是一種基于XML的獨立的、跨平臺的、互操作的應用程 序,XML又包含XSD、DTD、XPath等相關技術,這個撇開不說。webservice平臺元素主要有SOAP(簡易對象訪問協議)、UDDI(通 用描述、發現及整理)、WSDL(WS描述語言)。

JAX:即Java Xml,類似地JAXB(Java Xml Binding)

目前JWS主要有:

  1. JAX-WS 全稱JavaTM API forXML-Based Web Services 又叫JAX-RPC(遠程調用),顧名思義就是基于Web Services
  2. JAX-RS 全稱JavaTM API forRESTful Web Services 即使用REST風格
  3. JAXB
  4. JAXR
  5. SAAJ
  6. STAX

網上說關于JAX-WS與JAX-RS有這么說的: 兩者是不同風格的SOA架構。前者以動詞為中心,指定的是每次執行函數。而后者以名詞為中心,每次執行的時候指的是資源。

感覺這個說法比較靠譜,JAX-WS是面向消息的,每次請求的時候指定了請求的方法。JAX-RS是面向資源的。后則將網絡上的東西當做一種資源,每次請求都是對該資源進行操作,比如對資源的增刪查改。

關于REST風格,在JAX-RS之前就已經出現,最早的出現的是Restlet、RestEasy框架,后來是Jersey,并且現在Oracle的 Glassfish使用的就是Jersey,相對來說Restlet功能齊全、組件膨大,頁面和模版技術豐富,由于出現比較早,導致Restlet發展了 自己的一套MVC技術,Jersey也是一套JAX-RS產品,內部提供了好幾套容器和服務器,大致有grizzly2、JDK-http、 simple-http、Jetty這幾種。Jersey的MVC和Spring MVC有點類似(如其說是類似,簡直就是一模一樣),只是只有Jsp和Freemarker兩種視圖技術。

CDI:即Contexts Dependency Injection,和Spring的IOC差不多的東西,就是可以在組件中通過注解注入上下文、請求和響應等。

JTA:即Java Transaction API,使用過Hibernate和EJB的應該知道,就是事務處理,JTA依賴于所處的容器,如果不是分布式開發的話,我們一般使用本地事務,即是數據庫本身的事務處理。

JPA:即Java Persistence API,就是最常用的持久化技術,原本屬于EJB中的部分,EJB3.0之后分離出來,作為一個獨立的規范。作為一種ORM技術,JPA提供了基本的統一 標準,現在JPA的草案處于維護階段,對應的Hibernate框架的某些版本也處于Final版本。

JMS:即Java Message Service,和JDBC類似,提供了一個統一的API供其他廠商實現,主要用于客戶機信息的交互,JMS主要有點到點和訂閱/發布兩種方式。

另外,像Java Mail、JSTL、JSP等這些再熟悉不過的就不說了。

下面列出一些常用的技術縮寫:

EJB:  Enterprise  JavaBeans  企業JavaBean組件  
IDL:    Interface  Definition  Language  接口定義語言  
J2EE  CA:J2EE Connector Architecture J2EE 連接器架構
JAAS  :   The Java Authentication and Authorization Service  java認證授權服務
JACC: Java Authorization Contract with the Container??Java容器授權合約
JATMI:Java Application-to-Transaction Monitor Interface?Java 應用-事務監控接口
JBI   :   Java Business Integration Java業務集成
JCA   :  J2EE Connector Architecture Java連接器架構
JCP   :  Java Community Process Java組織
JDBC : Java Database Connectivity
JDO   :Java Data Objects
JDK:?Java Development Kit
JEMS : JBoss Enterprise Middleware Suite Jboss企業中間件
JMS :   Java Messaging Service Java消息服務
JMX   :Java Management extensions Java管理擴展
JNDI  : Java Naming and Directory Interface Java命名與目錄借口服務
JPDA:  Java Platform Debugger Architecture??Java平臺調試器架構
JRMP:Java Remote Message Protocol
JSP:   Java Server Page
JSTL: Java Standard Tag Library Java 標準標簽庫
JTS:   Java  Transaction  Service  Java事務服務
JTA :    Java Transaction API Java事務API
JVM  :  Java Virtual Machine Java虛擬機
MVC:   Model-View-Control
NIC:   Network Interface Card
O/R:   Object-Relational
OTS:   Object Transactional Services
PKI:   Public Key Infrastructure
POJO:  Plain Old Java Object
RMI:   Remote  Method  Invocation  遠程方法調用 

RMI/IIOP:RMI protocol over IIOP

EJB分為三種:  
Session  Bean(會話BEAN)  
Entity  Bean(實體BEAN)  
Message  Driver  Bean(消息驅動BEAN)  

Session  Bean分為兩種:  
Stateless  Session  Bean(無狀態會話Bean)  
Statefull  Session  Bean(有狀態會話Bean)  

Entity  Bean分為兩種:  
CMP:  Container  Manager  Persistence(容器管理持久性)
BMP:  Bean  Manager  Persistence(Bean管理持久性) 

其他縮寫名詞:  
BPEL  :   Business Process Execution Language 業務流程執行語言
BPM   :   Business Process Management 業務流程管理
DAO   :  Database  Access  Object  數據庫訪問對象  
DOM  :   Document Object Model  文檔對象模型
DTD :     Document Type Definition  文檔類型定義
DTO   :  Data  Transport  Object  數據傳輸對象  
ESB :     EnterpriseService Bus 企業服務總線
POJO :  Proterozoic  Java  Object  Java原生對象  
SAAJ:   SOAP with Attachments API for JavaTM  Java 的帶附件的SOAP API
SAX :    Simple API for XML Parsing XML解析處理簡單API
SAML:    Security Assertions markup Language
SGML  :  Standard Generalized Markup Language  SAML(Security Assertion Markup Language ):安全斷言標記語言
SLA:      Service Level Agreement服務級別協議
SNMP:    Simple Network Management Protocol:簡單網絡管理協議
SOA :    Service Oriented Architecture
SOAP:    Simple Object Access Protocol
SPENGO:Simple and Protected GSS-API Negotiation Mechanism 簡單和受保護的GSS-API協商機制
SPI:     * *Service Provider Interface ):服務提供模塊接口
SSL:     Secure Socket Layer):安全套接字層
SSO:     Single Sign-on):單點登錄
SSPI:    Security Service Provider Interface):安全服務提供模塊接口
StAX:    Streaming API for XML):XML 的流化API
UDDI:    Universal Description,Discovery,and Integration
VO   :    Value  Object  值對象  
WFMS:  workflow management system
WSDL:   Web Service Description Language
WSEE:  *Web Services Enterprise Edition
WSRP:  *OASIS Web Service for Remote Portlets
XA:      * *Extended Architecture 擴展架構
XACML:  XML Access Control Markup Language ):XML 訪問控制標記語言
XSLT:   XML Stylesheet Language for Transformations

說明

嚴格來說,Java EE還有EJB容器和客戶端容器。其中,EJB容器沒有Servlet,客戶端容器(Application Client Container)沒有Servlet和持久化。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!