一峻凫、后端開發(fā)的概念和技術(shù)棧
1.1 什么是后端開發(fā)纫事?
首先勘畔,簡單來說,后端開發(fā)就是開發(fā)人員編寫的不能直接看到的代碼丽惶。在Web開發(fā)世界中炫七,大多數(shù)后端開發(fā)人員從事于構(gòu)建他們正在工作的應(yīng)用程序背后的實際邏輯。通常钾唬,前端開發(fā)人員構(gòu)建用戶界面万哪,而后端開發(fā)人員編寫代碼,使其工作知纷。例如壤圃,前端開發(fā)人員在應(yīng)用程序中創(chuàng)建一個界面,上面有一個按鈕琅轧,按下按鈕來獲取客戶的數(shù)據(jù)伍绳。后端開發(fā)人員寫可使得按鈕工作的代碼,通過指出從數(shù)據(jù)庫中提取哪些數(shù)據(jù)并將其傳回到前端(并最終顯示在那里)乍桂。后端開發(fā)人員也可能會大量參與系統(tǒng)架構(gòu)冲杀,決定如何組織系統(tǒng)的邏輯,以便能夠正常維護(hù)和運行睹酌。他可能會參與構(gòu)建框架或系統(tǒng)架構(gòu)权谁,以便于更容易編寫程序。后端開發(fā)人員比前端開發(fā)人員花費更多的時間在實現(xiàn)算法和解決問題上憋沿。這并不是說前端開發(fā)人員不解決難題旺芽,但通常前端開發(fā)工作更多的是關(guān)于創(chuàng)建用戶界面和與之相關(guān)的內(nèi)容,而不是實現(xiàn)實際的業(yè)務(wù)邏輯,使應(yīng)用程序工作采章。
1.2 Java后端技術(shù)圖譜
二运嗜、JavaEE概念
概念綜述
- 多層式應(yīng)用(Multitier Application)——多層式應(yīng)用(或者多層式架構(gòu))分成多個邏輯部分,大多在多層服務(wù)器上實現(xiàn)悯舟。例如担租,三層應(yīng)用模型:用戶和瀏覽器,應(yīng)用服務(wù)器抵怎,數(shù)據(jù)庫服務(wù)器奋救。其中應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器就是分別在不同的服務(wù)器上來處理應(yīng)用的請求。
- 多層式服務(wù)(Multitier Service)——以三層架構(gòu)模型的服務(wù)為例反惕,應(yīng)用服務(wù)器響應(yīng)用戶的請求尝艘。數(shù)據(jù)庫服務(wù)器響應(yīng)應(yīng)用服務(wù)器的查詢求情。
- Java Bean——由一些包含私有屬性的Java類組成承璃,對外提供get和set方法利耍。從技術(shù)上講,這些類必須保證有一個不含參數(shù)的構(gòu)造器并且實現(xiàn)Serializable接口盔粹。
J2EE 5的概念
- Java EE應(yīng)用程序模型 ——這個模型描述了一個實現(xiàn)服務(wù)的多層架構(gòu)隘梨。“什么是服務(wù)”沒有明確的界限舷嗡。事實上轴猎,服務(wù)只是一個邏輯上的概念,它的對應(yīng)實體取決于應(yīng)用實現(xiàn)的概念进萄。例如捻脖,客戶端/服務(wù)器模型就是一種服務(wù)。
- Java EE 服務(wù)——這是一個J2EE中三層架構(gòu)的應(yīng)用服務(wù)范例中鼠。它是由網(wǎng)頁層(服務(wù)JSP頁面)和事務(wù)層(管理企業(yè)的數(shù)據(jù)層)組成的可婶。
-
Java EE 組件——“組件”是指獨立的軟件單元,可以和其他的組件組合來建立一個應(yīng)用援雇。
- Web組件(Web Component)——web端生成的頁面或者對用戶請求的返回矛渴。代表性的有: Java Servlets, JavaServer Faces 和 Java Server Pages.
- 小程序(Applet)——一個小型的Java應(yīng)用程序可以作為響應(yīng)的一部分返回給用戶,用戶可以在他們的瀏覽器上運行此程序惫搏。這種小型的程序是Javascript的競爭對手具温。
- 客戶端程序(Application Client)——例如,一個用Java寫的桌面應(yīng)用程序筐赔。
- EJB(Enterprise Java Beans)——見下文铣猩。
-
Java EE 客戶端——這個概念中包含三個其他的概念:
- 網(wǎng)頁客戶端(Web Client)或小型客戶端(thin client)——以前(也不是非常久以前),客戶端的請求返回的網(wǎng)頁會包含腳本代碼茴丰,這些代碼會在應(yīng)用服務(wù)器上執(zhí)行了再將運行結(jié)果返回給客戶端达皿。這就是EE客戶端天吓。比如,用戶可以查詢員工的信息鳞绕,并且對不同的結(jié)果按照他們喜歡的方式排列∈剩現(xiàn)在,大多數(shù)開發(fā)者都不是在網(wǎng)頁中使用腳本了们何,因為這不是個好習(xí)慣。他們更喜歡使用MVC設(shè)計原則控轿,即禁止在網(wǎng)頁中使用腳本冤竹。
- 小程序(Applet)
- 應(yīng)用客戶端(Application Client)
- Java EE 服務(wù)器通信(Java EE Server Communication)——這是指發(fā)生在小型客戶端和應(yīng)用客戶端之間在服務(wù)器上的通信。具有代表性的是茬射,小型客戶端和小程序在Web層通信鹦蠕,但是應(yīng)用客戶端在EJB通信。 你覺得這不夠清晰是嗎在抛?你覺得這很麻煩是嗎钟病?這就對了!這就是REST以及MVC設(shè)計原理現(xiàn)在在開發(fā)中流行的緣故刚梭。
- EJB (企業(yè)級Java Beans肠阱,Enterprise Java Beans)——這是一個邏輯概念,與傳統(tǒng)的Java Beans無關(guān)朴读。它主要試圖從多重應(yīng)用的后端(也就是服務(wù)器端)來壓縮事務(wù)邏輯屹徘。其中一個它試圖解決的問題是確保數(shù)據(jù)庫中事務(wù)處理的完整性。警告:EJB有多個版本衅金,并且3.0版本已經(jīng)從早期的版本分離出來噪伊。
- JavaBean Component——Java Bean 的同義詞,主要用在JSP范例中氮唯。
- Java EE容器(Java EE Container)——這是部署組裝Java EE組件的地方(也就是應(yīng)用程序服務(wù)器)鉴吹。它定義了Web容器(包含servlets和JSP),還定義了EJB容器(包含的企業(yè)級Java Bean)以及應(yīng)用客戶端容器(運行獨立的應(yīng)用程序)和在瀏覽器上運行的小程序容器惩琉。
- SOAP(簡單對象訪問協(xié)議豆励,Simple Object Access Protocol)——這是一個通過網(wǎng)絡(luò)提供的服務(wù)傳輸信息的協(xié)議。信息是通過XML構(gòu)建的琳水,能夠通過多個傳輸交換層肆糕,多數(shù)情況下是HTTP。SOAP是JSON和REST-like服務(wù)的競爭對手在孝。
- WSLD(網(wǎng)絡(luò)服務(wù)描述語言诚啃,Web Service Description Language)——它用XML文件來描述了網(wǎng)絡(luò)服務(wù)(名字,地點私沮,通信模式)始赎。
- UDDI(通用描述、發(fā)現(xiàn)與集成服務(wù),Universal Description, Discovery and Integration)——一種ebXML規(guī)范造垛,可以在線發(fā)布有關(guān)產(chǎn)品和服務(wù)的信息魔招。
- Java Servlet——是用Java寫的一個服務(wù)器端小程序,可以處理用戶的HTTP請求五辽,返回結(jié)果办斑。
- JSP (JavaServer Page)——一種基于HTML文件(就是一個模板)處理之后能夠生成靜態(tài)內(nèi)容「硕海可以包含腳本代碼的片段乡翅,以在最終生成的腳本靜態(tài)文件中生成。
- JSTL (JSP標(biāo)準(zhǔn)標(biāo)簽庫罪郊,JavaServer Page Standard Tag Library)——一組可以模仿腳本代碼功能的用在JSP的標(biāo)準(zhǔn)標(biāo)簽蠕蚜。例如,遍歷客戶端并顯示他們對應(yīng)的信息』陂希現(xiàn)在靶累,在JSP中,這樣的標(biāo)簽已經(jīng)已經(jīng)取代了腳本代碼癣疟。一般用于生成需要填充信息的頁面挣柬。
- JSF (Java Server Face)——包含JSF標(biāo)簽(類似于LSTL標(biāo)簽)的JSP頁面。此外争舞,JSF允許在頁面中定義導(dǎo)航模塊(類似于Spring web flow)凛忿,包括Facelets。
- JavaMail API——提供通過應(yīng)用程序發(fā)送郵件方式竞川。
- JAXP(加工XML文件的API店溢,Java API for XML Processing)——提供了處理XML文件的方式。
- JAXR(提供XML注冊的API委乌,Java API for XML Registries)——一個可以注冊包含了元數(shù)據(jù)的XML的API床牧。
-
JDBC(Java數(shù)據(jù)庫連接,Java Database Connectivity)——這個API可以使應(yīng)用程序直接通過SQL通信來訪問數(shù)據(jù)庫遭贸。
更多概念請點擊此處
三戈咳、Spring框架特點及構(gòu)成
1.特點:
-
方便解耦,簡化開發(fā)
通過Spring提供的IoC容器壕吹,我們可以將對象之間的依賴關(guān)系交由Spring進(jìn)行控制著蛙,避免硬編碼所造成的過度程序耦合。有了Spring耳贬,用戶不必再為單實例模式類踏堡、屬性文件解析等這些很底層的需求編寫代碼,可以更專注于上層的應(yīng)用咒劲。 -
AOP編程的支持
通過Spring提供的AOP功能顷蟆,方便進(jìn)行面向切面的編程诫隅,許多不容易用傳統(tǒng)OOP實現(xiàn)的功能可以通過AOP輕松應(yīng)付。 -
聲明事物的支持
在Spring中帐偎,我們可以從單調(diào)煩悶的事務(wù)管理代碼中解脫出來逐纬,通過聲明式方式靈活地進(jìn)行事務(wù)的管理,提高開發(fā)效率和質(zhì)量削樊。 -
方便程序的測試
可以用非容器依賴的編程方式進(jìn)行幾乎所有的測試工作豁生,在Spring里,測試不再是昂貴的操作漫贞,而是隨手可做的事情沛硅。例如:Spring對Junit4支持,可以通過注解方便的測試Spring程序绕辖。 -
方便集成各種優(yōu)秀框架
Spring不排斥各種優(yōu)秀的開源框架,相反擂红,Spring可以降低各種框架的使用難度仪际,Spring提供了對各種優(yōu)秀框架(如Struts,Hibernate、Hessian昵骤、Quartz)等的直接支持树碱。 -
降低Java EE API的使用難度
Spring對很多難用的Java EE API(如JDBC,JavaMail变秦,遠(yuǎn)程調(diào)用等)提供了一個薄薄的封裝層成榜,通過Spring的簡易封裝,這些Java EE API的使用難度大為降低蹦玫。 -
Java 源碼是經(jīng)典學(xué)習(xí)范例
Spring的源碼設(shè)計精妙赎婚、結(jié)構(gòu)清晰、匠心獨用樱溉,處處體現(xiàn)著大師對Java設(shè)計模式靈活運用以及對Java技術(shù)的高深造詣挣输。Spring框架源碼無疑是Java技術(shù)的最佳實踐范例。如果想在短時間內(nèi)迅速提高自己的Java技術(shù)水平和應(yīng)用開發(fā)水平福贞,學(xué)習(xí)和研究Spring源碼將會使你收到意想不到的效果撩嚼。
2.構(gòu)成: - 核心容器
- 應(yīng)用上下文(Context)模塊
- Spring的AOP模塊
- JDBC抽象和DAO模塊
- 對象/關(guān)系映射集成模塊
- Spring的Web模塊
- Spring的MVC框架
- Spring框架Web頁面亂碼問題
點擊查看詳細(xì)介紹
四、Spring的起步練習(xí)步驟
1.首先要配置好maven挖帘,避免重復(fù)配置完丽,接著create 一個new project
2.創(chuàng)建所需要的文件夾,配置好路徑
3.運用代碼下載所需要的maven jar包
4.在resources文件夾中配置xml文件
5.創(chuàng)建class類調(diào)用運行