關于我們
書單推薦
新書推薦
|
Java EE互聯(lián)網(wǎng)輕量級框架整合開發(fā):SSM+Redis+Spring微服務(上下冊) 隨著移動互聯(lián)網(wǎng)的興起,以Java技術為后臺的互聯(lián)網(wǎng)技術占據(jù)了市場的主導地位。在Java互聯(lián)網(wǎng)后臺開發(fā)中,SSM框架(Spring Spring?MVC MyBatis)成為了主要架構,本書講述了SSM框架從入門到實際工作的要求。與此同時,為了提高系統(tǒng)性能,NoSQL(尤其是Redis)在互聯(lián)網(wǎng)系統(tǒng)中已經(jīng)廣泛應用用,為了適應這個變化,本書通過Spring講解了有關Redis的技術應用。隨著微服務的異軍凸起,Spring微服務也成為時代的主流,本書也包括這方面的內(nèi)容。本書主要分為7部分:第1部分對Java互聯(lián)網(wǎng)的框架和主要涉及的模式做簡單介紹;第2部分講述MyBatis技術;第3部分講述Spring基礎(包括IoC、AOP和數(shù)據(jù)庫應用),重點講解Spring數(shù)據(jù)庫事務應用,以滿足互聯(lián)網(wǎng)企業(yè)的應用要求;第4部分講述Spring?MVC框架;第5部分通過Spring講解Redis技術;第6部分講解Spring微服務(Spring?Boot和Spring?Cloud);第7部分結合本書內(nèi)容講解Spring微服務實踐。 ◎ 暢銷書升級版,涵蓋Java EE主流框架技術SSM Redis Spring微服務,快速上手開發(fā) ◎內(nèi)容全面,以實際應用為導向,取舍明確 ◎尤其對于技術的重點、難點,解釋得深入淺出,案例豐富 ◎ 用Spring MVC整合MyBatis框架技術 ◎ 用Spring整合Redis在Java互聯(lián)網(wǎng)技術上的應用 ◎ 通過對Spring Boot和Spring Cloud的講解讓大家理解Spring微服務開發(fā) ◎ 通過秒殺講解互聯(lián)網(wǎng)高并發(fā)業(yè)務,通過Spring微服務實例串聯(lián)本書的主要知識點 隨著移動互聯(lián)網(wǎng)的興起以及手機和平板電腦的普及,Java開發(fā)方向發(fā)生了很大變化,漸漸從管理系統(tǒng)走向了互聯(lián)網(wǎng)系統(tǒng);ヂ(lián)網(wǎng)系統(tǒng)的要求是大數(shù)據(jù)、高并發(fā)、高響應,而非管理系統(tǒng)的少數(shù)據(jù)、低并發(fā)和緩慢響應。為順應技術發(fā)展趨勢,2017年夏,筆者出版了《Java EE互聯(lián)網(wǎng)輕量級框架整合開發(fā) SSM框架(Spring MVC Spring MyBatis)和Redis實現(xiàn)》一書,比較全面和系統(tǒng)地介紹了Java EE的開發(fā)知識,受到了業(yè)內(nèi)的廣泛肯定。但是隨著微服務的崛起,以及技術的更替,該書的知識點已經(jīng)開始過時,更新已是必然,這就是本書出版的原因。 移動互聯(lián)網(wǎng)的新要求 高并發(fā):舉個例子,大公司企業(yè)ERP應用,有1萬名員工使用,同時在線的用戶可能只有數(shù)百人,而操作一個業(yè)務的同一個數(shù)據(jù)的可能只有幾個人,其系統(tǒng)一般不會存在高并發(fā)的壓力,使用傳統(tǒng)程序和數(shù)據(jù)庫完全可以應付。在互聯(lián)網(wǎng)中,對于一件熱門的商品,可能剛一上市就有成千上萬的請求到達服務器,要求服務器瞬間執(zhí)行數(shù)以萬計的數(shù)據(jù)操作,對性能要求高,操作不當容易造成網(wǎng)站癱瘓,引發(fā)網(wǎng)站的生存危機。 高響應:企業(yè)管理系統(tǒng)可以緩慢處理一些業(yè)務,而在高并發(fā)的互聯(lián)網(wǎng)系統(tǒng)中,卻不可以,按照互聯(lián)網(wǎng)的要求一般以5秒為上限,超過5秒后響應,則用戶體驗不好,影響用戶忠誠度,因此往往需要在高并發(fā)和大數(shù)據(jù)量的場景下實現(xiàn)。 數(shù)據(jù)一致性:由于高并發(fā),多個線程對同一數(shù)據(jù)同時訪問,需要保證數(shù)據(jù)的一致性,比如電商網(wǎng)站的金額、商品庫存不能出錯,還要保證其性能不能太差,這是在管理系統(tǒng)中不會出現(xiàn)的場景。 技術復雜化:在互聯(lián)網(wǎng)中流行許多新技術,比如常見的NoSQL(Redis、MongoDB),微服務(Spring Boot和Spring Cloud)等技術。 為什么選擇SSM框架 Redis Spring微服務的開發(fā)模式 Struts2框架和Spring結合,多年來沒有改變臃腫的老毛病,更為嚴重的是近年來多次出現(xiàn)的漏洞問題,使得其名聲和使用率大降。這個時候Spring MVC框架成了新一代MVC框架的主流。它原生于Spring框架,可以無縫對接Spring的核心技術。與Struts不同,它的流程模塊化,沒有那么多臃腫的類,所以互聯(lián)網(wǎng)應用的框架大部分使用Spring MVC。 在目前企業(yè)的Java應用中,Spring框架是必需的,Spring的核心是IoC(控制反轉),它是一個大容器,方便組裝和管理各類系統(tǒng)內(nèi)外部資源,同時支持AOP(面向切面編程),這是對面向對象的補充,目前廣泛用于日志和數(shù)據(jù)庫事務控制,減少了大量的重復代碼,使得程序更為清晰。因為Spring可以使模塊解耦,控制對象之間的協(xié)作,所以Spring框架是目前Java為流行的框架。 對于Hibernate,筆者感慨多,在需要存儲過程或者復雜SQL時,它的映射關系幾乎用不上,所有的問題都需要自己敲代碼處理。作為全映射的框架,它的致命缺點是沒有辦法完全掌控數(shù)據(jù)庫的SQL,而優(yōu)化SQL是高并發(fā)、高響應系統(tǒng)的必然要求,這是互聯(lián)網(wǎng)系統(tǒng)的普遍特性,所以Hibernate在互聯(lián)網(wǎng)系統(tǒng)中被排除了。而另一個持久層框架MyBatis需要編寫SQL,提供映射規(guī)則,不過它加入了動態(tài)SQL、自動映射、接口編程等功能,從而變得簡單易用,同時支持SQL優(yōu)化、動態(tài)綁定,并滿足高并發(fā)和高響應的要求,所以它成為流行的Java互聯(lián)網(wǎng)持久框架。 NoSQL是基于內(nèi)存的,也就是將數(shù)據(jù)放在內(nèi)存中,而不是像數(shù)據(jù)庫那樣放在磁盤上,內(nèi)存的讀取速度是磁盤讀取速度的幾十倍到上百倍,所以NoSQL工具的讀取速度遠比數(shù)據(jù)庫讀取速度要快得多,滿足了高響應的要求。即使NoSQL將數(shù)據(jù)放在磁盤中,它也是一種半結構化的數(shù)據(jù)格式,讀取到解析的復雜度遠比數(shù)據(jù)庫要低,這是因為數(shù)據(jù)庫存儲的是經(jīng)過結構化、多范式等有復雜規(guī)則的數(shù)據(jù),還原為內(nèi)存結構的速度較慢。NoSQL在很大程度上滿足了高并發(fā)、快速讀/寫和響應的要求,所以它也是Java互聯(lián)網(wǎng)系統(tǒng)的利器。于是兩種NoSQL工具Redis和MongoDB流行起來,尤其是Redis,已經(jīng)成為主要的NoSQL工具,本書會詳細介紹它的常用方法。 隨著微服務的崛起,當前使用Spring的方式也以微服務為主,所以本書還會討論關于微服務(Spring Boot和Spring Cloud)的內(nèi)容。其中,Spring Boot是基于Spring技術進行封裝的,更易于開發(fā)Spring應用,而Spring Cloud則以Spring Boot的形式對一些分布式組件進行封裝,更易于理解和使用。 基于以上原因,SSM(Spring Spring MVC MyBatis)已經(jīng)成為Java互聯(lián)網(wǎng)時代的主流框架,而Spring微服務則更容易使用,加之Redis緩存已經(jīng)成了主流的NoSQL技術,筆者愿意將自己所掌握的知識分享給大家,為目前奮斗在SSM、Spring微服務和Redis戰(zhàn)線上的同行們奉獻一本有價值的參考書,給準備進入這個行業(yè)的新手一定的幫助和指導。 本書的特點 實用性:全書內(nèi)容來自筆者多年互聯(lián)網(wǎng)實踐開發(fā)經(jīng)驗,理論結合實際。 理論性:突出基礎理念,結合設計模式闡述框架的實現(xiàn)原理和應用理念,讓讀者知其然也知其所以然。 與時俱進:介紹框架技術,與當前互聯(lián)網(wǎng)企業(yè)保持同步,比如全注解搭建SSM框架、Spring微服務和Redis應用,方便讀者把技術應用到實際工作中去。 突出熱點和重點:著重介紹MyBatis實踐應用,Spring數(shù)據(jù)庫及事務應用,使用Spring介紹Redis實踐應用、Spring微服務、高并發(fā)和鎖等互聯(lián)網(wǎng)熱門技術的熱點和重點。 性能要求突出:這是移動互聯(lián)網(wǎng)的要求,因為互聯(lián)網(wǎng)面對大數(shù)據(jù)和高并發(fā),體現(xiàn)互聯(lián)網(wǎng)企業(yè)真實需求。 本書的內(nèi)容安排 本書基于一線企業(yè)的實際需求,介紹了Java互聯(lián)網(wǎng)流行的框架技術,內(nèi)容全面,以實際應用為導向,取舍明確,尤其對于技術的重點、難點,解釋得深入淺出,案例豐富,本書分為7部分。 第1部分,講解Java EE和框架基礎,讓讀者對每一門技術的主要作用都有所了解。介紹SSM框架的主要設計模式,有助于從底層深入理解框架。 第2部分,講解MyBatis的基礎應用,包括其主要組成、配置、映射器、動態(tài)SQL,并且深入MyBatis的底層運行原理和插件,詳細討論它們的高級應用。 第3部分,講解Spring IoC和Spring AOP。掌握Spring如何通過IoC管理資源,通過設計模式討論AOP的實現(xiàn)原理、使用方法及實踐。討論Spring對數(shù)據(jù)庫的支持,如何整合MyBatis,并且著重討論了Spring數(shù)據(jù)庫事務的相關內(nèi)容,包括數(shù)據(jù)庫隔離級別和傳播行為的應用。 第4部分,講解Spring MVC主要的流程、HandlerMapping的應用、控制器Controller、處理適配器(HandlerAdapter)、視圖和視圖解析器,然后討論傳遞參數(shù)、注解、數(shù)據(jù)校驗、消息轉換和國際化等應用。 第5部分,講解NoSQL的優(yōu)勢和應用方法,Redis的常用數(shù)據(jù)類型和主要命令,以及一些基本的特性(比如事務)和用法,并教會讀者在Java和Spring環(huán)境中使用它。 第6部分,講解Spring微服務,微服務的概念,通過對Spring Boot和Spring Cloud的講解讓大家理解Spring微服務的開發(fā)。 第7部分,通過Spring微服務實例串聯(lián)本書的主要知識點,讓大家體驗Java后端開發(fā)的主流技術;注重性能分析,介紹一些常見處理高并發(fā)的方法,以滿足企業(yè)的真實需要。 和讀者的約定 為了方便論述,我們進行以下約定。 import語句一般不出現(xiàn)在代碼中,主要是為了縮減篇幅,可以使用IDE自動導入,只有在筆者認為有必要的場景和一些重要的實例中,它才會出現(xiàn)在代碼中。 本書的例子大部分使用附錄A中的數(shù)據(jù)模型,附錄A中有基本的論述和對應的SQL語句。 對于普通的POJO,筆者大部分都會以/**setter and getter**/代替POJO的setter和getter方法,類似這樣: public class Role { private Long id; private String roleName; private String note; /**setter and getter**/ } 讀者可以用IDE生成這些屬性的setter和getter方法,這樣做主要是為了節(jié)省篇幅,突出重點,也有利于讀者的閱讀。當然在一些特別重要的和使用廣泛的場景中,比如MyBatis入門、SSM框架整合等,才會給出全量代碼,以便讀者進行編碼學習。 在默認情況下,筆者使用互聯(lián)網(wǎng)常用的MySQL數(shù)據(jù)庫,當使用其他數(shù)據(jù)庫時,筆者會事先加以說明。 本書采用的MyBatis版本是3.5.3,Spring的版本是5.2.1.RELEASE,Redis的版本是5.0.8,在實踐的過程中讀者需要注意版本之間的差異。 本書的目標讀者 閱讀本書,讀者要掌握以下知識:Java編程基礎和數(shù)據(jù)庫基礎知識(本書以互聯(lián)網(wǎng)數(shù)據(jù)庫MySQL為主)。本書以互聯(lián)網(wǎng)企業(yè)廣泛使用的技術框架為中心講解Java EE和Spring微服務技術,從入門到實踐,適合有志于從事Java EE和Spring微服務開發(fā)的各類人員閱讀,通過學習本書能夠有效提高技術能力,并將知識點應用到實際的企業(yè)工作中去。本書也可以作為大中專院校計算機專業(yè)的教材,幫助在校學生學習企業(yè)實際應用,當然讀者也可以把本書當作一本工作手冊進行查閱。 致謝 本書的成功出版,要感謝電子工業(yè)出版社的編輯們,沒有他們的辛苦付出,沒有本書的成功出版,尤其是孫學瑛編輯,寫作過程中她給了我很多的建議和幫助,為此付出了很多時間和精力。 在撰寫本書期間,我去了四川旅游,得到了校友劉家成的接待,和他聊起了創(chuàng)作本書的事情,他也自愿加入了本書的創(chuàng)作和更新,也幫助我編寫和完善了部分章節(jié)的內(nèi)容;同時得到前同事譚茂華的協(xié)助,他以過硬的技術為我排除了不少錯誤,給了我很多很好的建議,并撰寫了一些很好的實例;在此對他們的辛苦付出表示誠摯的感謝。 互聯(lián)網(wǎng)技術博大精深,涉及的技術門類特別多,甚至跨越行業(yè),技術更新較快。撰寫本書時筆者也遇到了一些困難,由于涉及的知識十分廣泛,對技術要求更高,出錯的概率也大大增加,正如沒有完美的程序一樣,也沒有完美的書,一切都需要一個完善的過程,所以尊敬的讀者,如果對本書有任何意見或建議,歡迎發(fā)送郵件到y(tǒng)kzhen2013@163.com,或者在筆者的博客(http://blog.csdn.net/ykzhen2015)上留言,以便于本書的修訂。 楊開振 楊開振,技術暢銷書作家,精通Java 互聯(lián)網(wǎng)技術開發(fā)和實踐,擁有十余年一線企業(yè)開發(fā)經(jīng)驗,著有業(yè)內(nèi)暢銷書《深入淺出MyBatis 技術原理與實戰(zhàn)》《深入淺出Spring Boot 2.x》和《Spring Cloud微服務和分布式系統(tǒng)實踐》等。寫作特點是技術點詳盡準確、文字淺顯易懂,立志于用書普及基礎技術。劉家成,資深軟件工程師,曾任職Synnex中國、亞信國際等,在電信、分銷領域有豐富經(jīng)驗,在Java高并發(fā)和Spring生態(tài)有深刻的理解。 第1部分 入門和技術基礎
你還可能感興趣
我要評論
|