Day 01 Spring起步

一峻凫、后端開發(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ù)圖譜

后端技術(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的概念

image
  • 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)用運行

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拇舀,一起剝皮案震驚了整個濱河市逻族,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌你稚,老刑警劉巖瓷耙,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朱躺,死亡現(xiàn)場離奇詭異,居然都是意外死亡搁痛,警方通過查閱死者的電腦和手機(jī)长搀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鸡典,“玉大人源请,你說我怎么就攤上這事〕箍觯” “怎么了谁尸?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纽甘。 經(jīng)常有香客問我良蛮,道長,這世上最難降的妖魔是什么悍赢? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任决瞳,我火速辦了婚禮,結(jié)果婚禮上左权,老公的妹妹穿的比我還像新娘皮胡。我一直安慰自己,他們只是感情好赏迟,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布屡贺。 她就那樣靜靜地躺著,像睡著了一般锌杀。 火紅的嫁衣襯著肌膚如雪甩栈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天抛丽,我揣著相機(jī)與錄音谤职,去河邊找鬼。 笑死亿鲜,一個胖子當(dāng)著我的面吹牛允蜈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蒿柳,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼饶套,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了垒探?” 一聲冷哼從身側(cè)響起妓蛮,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎圾叼,沒想到半個月后蛤克,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捺癞,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年构挤,在試婚紗的時候發(fā)現(xiàn)自己被綠了髓介。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡筋现,死狀恐怖唐础,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情矾飞,我是刑警寧澤一膨,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站洒沦,受9級特大地震影響豹绪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜申眼,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一森篷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豺型,春花似錦、人聲如沸买乃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽剪验。三九已至肴焊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間功戚,已是汗流浹背娶眷。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留啸臀,地道東北人届宠。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像乘粒,于是被迫代替她去往敵國和親豌注。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內(nèi)容