JavaEE 7提供了一個(gè)完整、全面、集成的堆棧來(lái)幫助你構(gòu)建企業(yè)和Web應(yīng)用程序。
JavaEE容器
主要就是JSF(JavaServer Faces)和EJB(Enterprise Java Bean)兩大部分,JSF依賴于EJB,并且是重量級(jí)的,JSF使用了一大堆組件控制頁(yè)面,跟Struts2的標(biāo)簽差不多;EJB目前做得不錯(cuò),相比Spring,EJB完全不需要作任何配置,內(nèi)部包含JPA規(guī)范,可以和Hibernate無(wú)縫接入,但是學(xué)習(xí)曲線依然很大,并且對(duì)服務(wù)器有要求,用tomcat做服務(wù)器還需要和JBoss搭配,新手學(xué)習(xí)可以使用Glassfish。
WEB容器
這部分內(nèi)容比較多,JavaEE 7新添加的為下圖棕黃色的部分,即WebSocket、Concurrency Utilities、Batch、JSON-P,新添加部分主要是為HTML5提供更好的伸縮性,這些Spring都有,不知是否是借鑒Spring的部分功能。技術(shù)雖然很多,其實(shí)都有JSR白皮書(shū)規(guī)約的,有些已經(jīng)有最終定稿,有些還處于草案和不斷修改階段(其實(shí)也沒(méi)有最終定稿,而是處于維護(hù)階段)。
下面說(shuō)說(shuō)一些常見(jiàn)的概念術(shù)語(yǔ):
JWS:即Java Web Service,指與webservice相關(guān)的JavaEE技術(shù)部分,webservice是一種基于XML的獨(dú)立的、獨(dú)立的應(yīng)用程序,XML又包含XSD、DTD、XPath等相關(guān)技術(shù),這個(gè)撇開(kāi)不說(shuō)。webservice平臺(tái)元素主要有SOAP(簡(jiǎn)易對(duì)象訪問(wèn)協(xié)議)、UDDI(通用描述、發(fā)現(xiàn)及整理)、WSDL(WS描述語(yǔ)言)。
JAX:即Java Xml,類(lèi)似地JAXB(Java Xml Binding)
目前JWS主要有:
JAX-WS 全稱JavaTM API forXML-Based Web Services 又叫JAX-RPC,顧名思義就是基于Web Services
JAX-RS 全稱JavaTM API forRESTful Web Services 即使用REST風(fēng)格
JAXB
JAXR
SAAJ
STAX
網(wǎng)上說(shuō)關(guān)于JAX-WS與JAX-RS有這么說(shuō)的: 兩者是不同風(fēng)格的SOA架構(gòu)。前者以動(dòng)詞為中心,指定的是每次執(zhí)行函數(shù)。而后者以名詞為中心,每次執(zhí)行的時(shí)候指的是資源。
感覺(jué)這個(gè)說(shuō)法比較靠譜,JAX-WS是面向消息的,每次請(qǐng)求的時(shí)候指定了請(qǐng)求的方法。JAX-RS是面向資源的。后則將網(wǎng)絡(luò)上的東西當(dāng)做一種資源,每次請(qǐng)求都是對(duì)該資源進(jìn)行操作,比如對(duì)資源的增刪查改。
關(guān)于REST風(fēng)格,在JAX-RS之前就已經(jīng)出現(xiàn),最早的出現(xiàn)的是Restlet、RestEasy框架,后來(lái)是Jersey,并且現(xiàn)在Oracle的Glassfish使用的就是Jersey,相對(duì)來(lái)說(shuō)Restlet功能齊全、組件膨大,頁(yè)面和模版技術(shù)豐富,由于出現(xiàn)比較早,導(dǎo)致Restlet發(fā)展了自己的一套MVC技術(shù),Jersey也是一套JAX-RS產(chǎn)品,內(nèi)部提供了好幾套容器和服務(wù)器,大致有g(shù)rizzly2、JDK-http、simple-http、Jetty這幾種。Jersey的MVC和Spring MVC有點(diǎn)類(lèi)似(如其說(shuō)是類(lèi)似,簡(jiǎn)直就是一模一樣),只是只有Jsp和Freemarker兩種視圖技術(shù)。
CDI:即Contexts Dependency Injection,和Spring的IOC差不多的東西,就是可以在組件中通過(guò)注解注入上下文、請(qǐng)求和響應(yīng)等。
JTA:即Java Transaction API,使用過(guò)Hibernate和EJB的應(yīng)該知道,就是事務(wù)處理,JTA依賴于所處的容器,如果不是分布式開(kāi)發(fā)的話,我們一般使用本地事務(wù),即是數(shù)據(jù)庫(kù)本身的事務(wù)處理。
JPA:即Java Persistence API,就是最常用的持久化技術(shù),原本屬于EJB中的部分,EJB3.0之后分離出來(lái),作為一個(gè)獨(dú)立的規(guī)范。作為一種ORM技術(shù),JPA提供了基本的統(tǒng)一標(biāo)準(zhǔn),現(xiàn)在JPA的草案處于維護(hù)階段,對(duì)應(yīng)的Hibernate框架的某些版本也處于Final版本。
JMS:即Java Message Service,和JDBC類(lèi)似,提供了一個(gè)統(tǒng)一的API供其他廠商實(shí)現(xiàn),主要用于客戶機(jī)信息的交互,JMS主要有點(diǎn)到點(diǎn)和訂閱/發(fā)布兩種方式。
另外,像Java Mail、JSTL、JSP等這些再熟悉不過(guò)的就不說(shuō)了。
下面列出一些常用的技術(shù)縮寫(xiě):
EJB: Enterprise JavaBeans 企業(yè)JavaBean組件
IDL: Interface Definition Language 接口定義語(yǔ)言
J2EE CA:J2EE Connector Architecture J2EE 連接器架構(gòu)
JAAS : The Java Authentication and Authorization Service java認(rèn)證授權(quán)服務(wù)
JACC: Java Authorization Contract with the Container??Java容器授權(quán)合約
JATMI:Java Application-to-Transaction Monitor Interface?Java 應(yīng)用-事務(wù)監(jiān)控接口
JBI : Java Business Integration Java業(yè)務(wù)集成
JCA : J2EE Connector Architecture Java連接器架構(gòu)
JCP : Java Community Process Java組織
JDBC : Java Database Connectivity
JDO :Java Data Objects
JDK:?Java Development Kit
JEMS : JBoss Enterprise Middleware Suite Jboss企業(yè)中間件
JMS : Java Messaging Service Java消息服務(wù)
JMX :Java Management extensions Java管理擴(kuò)展
JNDI : Java Naming and Directory Interface Java命名與目錄借口服務(wù)
JPDA: Java Platform Debugger Architecture??Java平臺(tái)調(diào)試器架構(gòu)
JRMP:Java Remote Message Protocol
JSP: Java Server Page
JSTL: Java Standard Tag Library Java 標(biāo)準(zhǔn)標(biāo)簽庫(kù)
JTS: Java Transaction Service Java事務(wù)服務(wù)
JTA : Java Transaction API Java事務(wù)API
JVM : Java Virtual Machine Java虛擬機(jī)
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 遠(yuǎn)程方法調(diào)用
RMI/IIOP:RMI protocol over IIOP
EJB分為三種:
Session Bean(會(huì)話BEAN)
Entity Bean(實(shí)體BEAN)
Message Driver Bean(消息驅(qū)動(dòng)BEAN)
Session Bean分為兩種:
Stateless Session Bean(無(wú)狀態(tài)會(huì)話Bean)
Statefull Session Bean(有狀態(tài)會(huì)話Bean)
Entity Bean分為兩種:
CMP: Container Manager Persistence(容器管理持久性)
BMP: Bean Manager Persistence(Bean管理持久性)
其他縮寫(xiě)名詞:
BPEL : Business Process Execution Language 業(yè)務(wù)流程執(zhí)行語(yǔ)言
BPM : Business Process Management 業(yè)務(wù)流程管理
DAO : Database Access Object 數(shù)據(jù)庫(kù)訪問(wèn)對(duì)象
DOM : Document Object Model 文檔對(duì)象模型
DTD : Document Type Definition 文檔類(lèi)型定義
DTO : Data Transport Object 數(shù)據(jù)傳輸對(duì)象
ESB : EnterpriseService Bus 企業(yè)服務(wù)總線
POJO : Proterozoic Java Object Java原生對(duì)象
SAAJ: SOAP with Attachments API for JavaTM Java 的帶附件的SOAP API
SAX : Simple API for XML Parsing XML解析處理簡(jiǎn)單API
SAML: Security Assertions markup Language
SGML : Standard Generalized Markup Language SAML(Security Assertion Markup Language ):安全斷言標(biāo)記語(yǔ)言
SLA: Service Level Agreement服務(wù)級(jí)別協(xié)議
SNMP: Simple Network Management Protocol:簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議
SOA : Service Oriented Architecture
SOAP: Simple Object Access Protocol
SPENGO:Simple and Protected GSS-API Negotiation Mechanism 簡(jiǎn)單和受保護(hù)的GSS-API協(xié)商機(jī)制
SPI: * *Service Provider Interface ):服務(wù)提供模塊接口
SSL: Secure Socket Layer):安全套接字層
SSO: Single Sign-on):?jiǎn)吸c(diǎn)登錄
SSPI: Security Service Provider Interface):安全服務(wù)提供模塊接口
StAX: Streaming API for XML):XML 的流化API
UDDI: Universal Description,Discovery,and Integration
VO : Value Object 值對(duì)象
WFMS: workflow management system
WSDL: Web Service Description Language
WSEE: *Web Services Enterprise Edition
WSRP: *OASIS Web Service for Remote Portlets
XA: * *Extended Architecture 擴(kuò)展架構(gòu)
XACML: XML Access Control Markup Language ):XML 訪問(wèn)控制標(biāo)記語(yǔ)言
XSLT: XML Stylesheet Language for Transformations
說(shuō)明
嚴(yán)格來(lái)說(shuō),Java EE還有EJB容器和客戶端容器。其中,EJB容器沒(méi)有Servlet,客戶端容器(Application Client Container)沒(méi)有Servlet和持久化。
更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄