本篇文章為大家展示了JavaEE完整體系架構(gòu)是怎樣的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站建設(shè),高端網(wǎng)頁(yè)制作,對(duì)成都假山制作等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)成都網(wǎng)站推廣優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
JavaEE是一套使用Java進(jìn)行企業(yè)級(jí)Web應(yīng)用開(kāi)發(fā)的大家一致遵循的工業(yè)標(biāo)準(zhǔn)。 JavaEE平臺(tái)提供了一個(gè)基于組件的方法來(lái)加快設(shè)計(jì)、開(kāi)發(fā)、裝配及部署企業(yè)應(yīng)用程序。 相較于Microsoft的.NET,Sun公司的Java*E和一系列標(biāo)準(zhǔn)、技術(shù)及協(xié)議更接近或更滿足互聯(lián)網(wǎng)在智能化Web服務(wù)方面對(duì)開(kāi)放性、分布性和平臺(tái)無(wú)關(guān)性的要求。
1、JDBC(Java Database)數(shù)據(jù)庫(kù)連接
JDBC是一組用于執(zhí)行SQL的Java API ,為訪問(wèn)不同的數(shù)據(jù)庫(kù)提供了一種統(tǒng)一的途徑,幾乎所有的關(guān)系型數(shù)據(jù)庫(kù)廠商(DBMS)都提供了JDBC的服務(wù)或驅(qū)動(dòng)。JDBC對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)也具有平臺(tái)無(wú)關(guān)性。
2、JNDI(Java Naming and Directory Interfaces)Java 的命名和目錄接口
JNDI是命名目錄服務(wù)的抽象接口集合,為企業(yè)級(jí)應(yīng)用提供了統(tǒng)一的標(biāo)準(zhǔn)化連接,使Java能夠無(wú)縫地獲取任何可目錄化的企業(yè)信息。在JavaEE體系中,JNDI用來(lái)定位各種對(duì)象,包括EJB、數(shù)據(jù)庫(kù)驅(qū)動(dòng)、JDBC數(shù)據(jù)源及消息連接等。由于JNDI是獨(dú)立于目錄協(xié)議的,因此還可以用JNDI訪問(wèn)各種特定的目錄服務(wù),如LDAP(輕量目錄訪問(wèn)協(xié)議)、NDS(服務(wù)器目錄訪問(wèn)服務(wù))。
3、EJB(Enterprise JavaBean)
EJB組件:JavaBean是在編程環(huán)境(IDE)中能夠被可視化處理的可重用組件,是實(shí)現(xiàn)分布式業(yè)務(wù)邏輯的 Java 組件。我們?cè)陂_(kāi)發(fā)的時(shí)候可以利用這些組件,像搭積木一樣建立面向?qū)ο蟮姆植际綉?yīng)用。 EJB容器:是EJB組件的運(yùn)行環(huán)境,為部署EJB組件提供服務(wù),包括事務(wù)、安全、遠(yuǎn)程客戶端的網(wǎng)絡(luò)發(fā)布、資源管理等。 EJB服務(wù)器:管理EJB容器的高端進(jìn)程或應(yīng)用程序,并提供對(duì)系統(tǒng)服務(wù)的訪問(wèn)。 調(diào)用EJB組件的應(yīng)該稱為EJB客戶端,客戶端可以運(yùn)行在Web容器中。
4、RMI(Remote Method Invoke)遠(yuǎn)程方法調(diào)用
RMI協(xié)議能夠讓在某個(gè)Java虛擬機(jī)上的對(duì)象,像調(diào)用本地對(duì)象一樣調(diào)用另一個(gè)Java虛擬機(jī)中的對(duì)象上的方法。它使用了序列化方式在客戶端和服務(wù)器端傳送數(shù)據(jù)。RMI是一種被EJB使用的更底層的協(xié)議。(stub/skeleton層提供了客戶程序和服務(wù)程序彼此交互的接口)
5、Java IDL(Interface Description Language)/CORBA(Common Object Broker Architecture)Java 接口定義語(yǔ)言/公用對(duì)象請(qǐng)求代理程序體系結(jié)構(gòu)
IDL是用來(lái)描述軟件組件接口的一種計(jì)算機(jī)語(yǔ)言。IDL通過(guò)一種中立的方式來(lái)描述接口,使得在不同平臺(tái)上運(yùn)行的對(duì)象和用不同語(yǔ)言編寫的程序可以相互通信交流。
6、JSP(Java Server Pages)
JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端所請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。 JSP可以使用Servlet提供的API,一般和JavaBean結(jié)合使用,從而將界面表現(xiàn)和業(yè)務(wù)邏輯分離。
7、Servlet
Servlet是一種小型的Java程序,它擴(kuò)展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當(dāng)被請(qǐng)求時(shí)開(kāi)始執(zhí)行。Servlet提供的功能大多與JSP類似,不過(guò)實(shí)現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成并且生成HTML。
8、XML(Extensible Markup Language)可擴(kuò)展白標(biāo)記語(yǔ)言
XML是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言。它被用來(lái)在不同的商務(wù)過(guò)程中共享數(shù)據(jù)。XML的發(fā)展和Java是相互獨(dú)立的,但是它和Java有著相同的目標(biāo),即平臺(tái)獨(dú)立性。通過(guò)Java和XML的組合,可以得到一個(gè)完美的具有平臺(tái)獨(dú)立性的解決方案。
9、JMS(Java Message Service)Java 消息服務(wù)
JMS是Java的消息服務(wù),JMS的客戶端之間可以通過(guò)JMS服務(wù)進(jìn)行異步的消息傳輸。JMS用于和面向消息的中間件相互通信的應(yīng)用程序接口(API)。它既支持點(diǎn)對(duì)點(diǎn)的域,有支持發(fā)布/訂閱(publish/subscribe)類型的域,并且提供對(duì)下列類型的支持:經(jīng)認(rèn)可的消息傳遞,事務(wù)型消息的傳遞,一致性消息和具有持久性的訂閱者支持。 JMS消息系統(tǒng)帶來(lái)的好處:1、提供消息靈活性;2、松散耦合;3、異步性。
10、JTA(Java Transaction API)Java 事務(wù) API
在JavaEE應(yīng)用中,事務(wù)是一個(gè)不可或缺的組件模型,它保證了用戶操作ACID(即原子、一致、隔離、持久)屬性。對(duì)于那些跨數(shù)據(jù)源(例如多個(gè)數(shù)據(jù)庫(kù),或者數(shù)據(jù)庫(kù)與JMS)的大型應(yīng)用,則必須使用全局事務(wù)JTA。應(yīng)用系統(tǒng)可以由JTA定義的標(biāo)準(zhǔn)API訪問(wèn)各種事務(wù)監(jiān)控,JTA為JavaEE平臺(tái)提供了分布式事務(wù)服務(wù),它隔離了事務(wù)與底層的資源,實(shí)現(xiàn)了透明的事務(wù)管理方式。11、JTS(Java Transaction Service)Java 事務(wù)服務(wù)
JTS是一個(gè)組件事務(wù)監(jiān)視器。JTS是CORBA OTS事務(wù)監(jiān)控的基本實(shí)現(xiàn)。JTS規(guī)定了事務(wù)管理器的實(shí)現(xiàn)方式。JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、獨(dú)立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。
12、JavaMail
JavaMail是用于存取郵件服務(wù)器的API,它提供了一套郵件服務(wù)器的抽象類。不僅支持SMTP服務(wù)器,也支持IMAP服務(wù)器和POP服務(wù)器。
13、JAF(JavaBean Activation Framework)
JavaMail利用JAF來(lái)處理MIME編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成Java對(duì)象,或者轉(zhuǎn)換自Java對(duì)象。大多數(shù)應(yīng)用都可以不需要直接使用JAF。
兩層架構(gòu)
傳統(tǒng)的客戶服務(wù)器系統(tǒng)僅只簡(jiǎn)單地基于兩層體系來(lái)構(gòu)建,即客戶端(前臺(tái))和企業(yè)信息系統(tǒng)(后臺(tái)),沒(méi)有任何中間件,業(yè)務(wù)邏輯層與表示層或數(shù)據(jù)層混在一起。這種兩層架構(gòu)無(wú)論從開(kāi)發(fā)、部署、擴(kuò)展、維護(hù)來(lái)說(shuō),綜其只有一個(gè)特點(diǎn)——成本高。
三層架構(gòu)
三層架構(gòu)自上而下將系統(tǒng)分為表示層、邏輯層、持久層。 表示層由處理用戶交互的客戶端組件及其容器所組成; 業(yè)務(wù)邏輯層由解決業(yè)務(wù)問(wèn)題的組件組成; 數(shù)據(jù)層由一個(gè)或多個(gè)數(shù)據(jù)庫(kù)組成,并可包含存儲(chǔ)過(guò)程。 這種三層架構(gòu),在處理客戶端的請(qǐng)求時(shí),使客戶端不用進(jìn)行復(fù)雜的數(shù)據(jù)庫(kù)處理;透明地為客戶端執(zhí)行許多工作,如查詢數(shù)據(jù)庫(kù)、執(zhí)行業(yè)務(wù)規(guī)則和連接現(xiàn)有的應(yīng)用程序;并且能夠幫助開(kāi)發(fā)人員創(chuàng)建適用于企業(yè)的大型分布式應(yīng)用程序。
MVC
在MVC模式中,應(yīng)用程序被劃分為模型層(Model)、視圖層(View)、控制層(Controller)三部分。MVC模型就是把一個(gè)應(yīng)用程序的開(kāi)發(fā)按照業(yè)務(wù)邏輯、數(shù)據(jù)、視圖進(jìn)行分離分層并組織代碼。MVC要求把應(yīng)用的模型按一定的層次規(guī)則抽取出來(lái),將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。模型層負(fù)責(zé)封裝應(yīng)用的狀態(tài),并實(shí)現(xiàn)功能,視圖層負(fù)責(zé)將內(nèi)容呈現(xiàn)給用戶,控制層負(fù)責(zé)控制視圖層發(fā)送的請(qǐng)求以及程序的流程。 Servlet
+JSP
+JavaBean
(MVC)這種模式比較適合開(kāi)發(fā)復(fù)雜的web應(yīng)用,在這種模式下,Servlet負(fù)責(zé)處理用戶請(qǐng)求,JSP負(fù)責(zé)數(shù)據(jù)顯示,JavaBean負(fù)責(zé)封裝數(shù)據(jù)。
基于JavaEE架構(gòu)模式下的MVC在這種架構(gòu)模式下,模型層(Model)定義了數(shù)據(jù)模型和業(yè)務(wù)邏輯。為了將數(shù)據(jù)訪問(wèn)與業(yè)務(wù)邏輯分離,降低代碼之間的耦合,提高業(yè)務(wù)精度,模型層又具體劃分為了DAO層和業(yè)務(wù)層,DAO即Data Access Object,其主要職能是將訪問(wèn)數(shù)據(jù)庫(kù)的代碼封裝起來(lái),讓這些代碼不會(huì)在其它層出現(xiàn)或者暴露出來(lái)給其它層;業(yè)務(wù)層是整個(gè)系統(tǒng)最核心也是最具有價(jià)值的一層,該層封裝應(yīng)用程序的業(yè)務(wù)邏輯,處理數(shù)據(jù),關(guān)注客戶需求,在業(yè)務(wù)處理過(guò)程中會(huì)訪問(wèn)原始數(shù)據(jù)或產(chǎn)生新數(shù)據(jù),DAO層提供的DAO類能很好地幫助業(yè)務(wù)層完成數(shù)據(jù)處理,業(yè)務(wù)層本身側(cè)重于對(duì)客戶需求的理解和業(yè)務(wù)規(guī)則的適應(yīng),總體說(shuō)來(lái),DAO層不處理業(yè)務(wù)邏輯,只為業(yè)務(wù)層提供輔助,完成獲取原始數(shù)據(jù)或持久層數(shù)據(jù)等操作。
JSP:JSP被用來(lái)產(chǎn)生Web的動(dòng)態(tài)內(nèi)容。這層把應(yīng)用數(shù)據(jù)以網(wǎng)頁(yè)的形式呈現(xiàn)給瀏覽器,然后數(shù)據(jù)按照在JSP中開(kāi)發(fā)的預(yù)定的方式表示出來(lái),這層也可以稱之為布局層。
Servlet:JSP建立在Servlet之上,Servlet是J2EE的重要組成部分。Servlet負(fù)責(zé)處理用戶請(qǐng)求,Java Web項(xiàng)目的所有配置都寫在了web.xml
配置文件里,當(dāng)項(xiàng)目運(yùn)行的時(shí)候,web.xml
會(huì)將http請(qǐng)求映射給對(duì)應(yīng)的Servlet類。
JavaBean:由一些具有私有屬性的Java類組成,對(duì)外提供get和set方法。JavaBean負(fù)責(zé)數(shù)據(jù),負(fù)責(zé)處理視圖層和業(yè)務(wù)邏輯之間的通信。
Service:業(yè)務(wù)處理類,對(duì)數(shù)據(jù)進(jìn)行一些預(yù)處理。
DAO:數(shù)據(jù)訪問(wèn)層,JDBC調(diào)用存儲(chǔ)過(guò)程,從數(shù)據(jù)庫(kù)(DataBase)那里獲取到數(shù)據(jù),再封裝到Model實(shí)體類中去。
上述內(nèi)容就是JavaEE完整體系架構(gòu)是怎樣的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。