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