Spring Boot企業(yè)級項(xiàng)目開發(fā)——入門到精通
定 價(jià):68 元
- 作者:鐘林森 羅劍 著
- 出版時(shí)間:2020/3/1
- ISBN:9787568041249
- 出 版 社:華中科技大學(xué)出版社
- 中圖法分類:TP312.8
- 頁碼:380
- 紙張:膠版紙
- 版次:1
- 開本:16開
《Spring Boot企業(yè)級項(xiàng)目開發(fā)——入門到精通》站在初學(xué)者的角度,從零開始介紹Spring Boot的基本概念、核心特性以及在實(shí)際項(xiàng)目開發(fā)中的作用,帶領(lǐng)讀者一步一個(gè)腳印地學(xué)習(xí)并實(shí)戰(zhàn)Spring Boot相關(guān)核心技術(shù)以及常見的分布式中間件;除此之外,書末還重點(diǎn)介紹并實(shí)戰(zhàn)了企業(yè)中幾乎處處可見的系統(tǒng)——權(quán)限管理平臺(tái),以此鞏固加深前面篇章學(xué)習(xí)的相關(guān)技術(shù)。
值得一提的是,書中在介紹Spring Boot核心技術(shù)理論知識(shí)的同時(shí)也給出了相對應(yīng)的實(shí)際項(xiàng)目案例,并編寫了相應(yīng)的代碼進(jìn)行實(shí)戰(zhàn)實(shí)現(xiàn),以此提高讀者的開發(fā)水平和項(xiàng)目實(shí)戰(zhàn)能力。
本書共10章,分為3篇。第1篇為Spring Boot基礎(chǔ)篇,主要介紹了Spring Boot的基本概念、技術(shù)優(yōu)勢和幾大核心特性,基于Spring Boot開發(fā)應(yīng)用系統(tǒng)時(shí)需要準(zhǔn)備的開發(fā)環(huán)境和開發(fā)工具,并以此作為基礎(chǔ)搭建了入門級的Spring Boot單模塊項(xiàng)目——Hello World 以此開啟Spring Boot的學(xué)習(xí)之旅;之后則是趁熱打鐵,先后介紹并實(shí)戰(zhàn)了如何在Spring Boot項(xiàng)目讀取各種類型的配置文件、整合數(shù)據(jù)訪問層ORM框架Spring Data JPA/Mybatis實(shí)現(xiàn)對數(shù)據(jù)庫的操作、整合Spring MVC實(shí)現(xiàn)一個(gè)Java Web應(yīng)用系統(tǒng)常見、常用的功能。
第2篇為Spring Boot核心技術(shù)與高級應(yīng)用篇,全面介紹了目前在實(shí)際項(xiàng)目開發(fā)中Spring Boot常見、常用的核心技術(shù)及其對應(yīng)的代碼實(shí)戰(zhàn),其中主要包括文件的上傳下載、各種類型郵件的發(fā)送、定時(shí)任務(wù)的實(shí)現(xiàn)、多種方式實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出等核心技術(shù);除此之外,還重點(diǎn)介紹了目前市面上兩款主流的分布式中間件,包括緩存中間Redis、消息中間件RabbitMQ,介紹其基本概念、作用以及典型的應(yīng)用場景,可以說為本書潤色了不少。
第3篇為Spring Boot企業(yè)項(xiàng)目實(shí)戰(zhàn)與總結(jié)篇,本篇的內(nèi)容是對第1、2篇內(nèi)容做的總結(jié);重點(diǎn)介紹并實(shí)戰(zhàn)了如何基于Spring Boot搭建一個(gè)實(shí)際的企業(yè)級項(xiàng)目——權(quán)限管理平臺(tái),帶領(lǐng)讀者從系統(tǒng)功能需求分析開始,到系統(tǒng)的整體架構(gòu)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì),再到系統(tǒng)功能模塊劃分、前后端編碼開發(fā)、測試、系統(tǒng)安全防御配置,后再到系統(tǒng)打包、部署、上線運(yùn)行等一整套流程,有助于讀者切身感受企業(yè)中真實(shí)項(xiàng)目的整個(gè)開發(fā)上線流程。
本書特別適合Spring Boot實(shí)踐經(jīng)驗(yàn)為零的開發(fā)人員閱讀;有一定Java應(yīng)用開發(fā)經(jīng)驗(yàn)的工程師,閱讀該書后可以了解Spring Boot在構(gòu)建企業(yè)級應(yīng)用過程中所提供的思路和解決方案,進(jìn)一步了解Spring Boot底層的運(yùn)行原理;IT培訓(xùn)機(jī)構(gòu)的學(xué)員也可以通過該書系統(tǒng)地學(xué)習(xí)Spring Boot相關(guān)的核心技術(shù)。
(1)零基礎(chǔ)入門Spring Boot,由淺入深、循序漸進(jìn)地講述Spring Boot核心技術(shù)。
(2)涵蓋Spring Boot、Spring MVC、Mybatis、Shiro、Redis、RabbitMQ等技術(shù)。
(3)理論聯(lián)系實(shí)際,以企業(yè)真實(shí)項(xiàng)目為應(yīng)用場景實(shí)戰(zhàn)相關(guān)技術(shù),鞏固知識(shí),加深理解。
(4)書中所有知識(shí)點(diǎn)都配有代碼實(shí)戰(zhàn),能讓讀者在理解理論的同時(shí)掌握開發(fā)技能。
(5)通過企業(yè)權(quán)限管理平臺(tái)項(xiàng)目的全程實(shí)戰(zhàn),提高讀者的項(xiàng)目開發(fā)水平和技術(shù)運(yùn)用能力。
時(shí)光荏苒,歲月如梭,轉(zhuǎn)眼間Java已經(jīng)走過了二十多個(gè)年頭,其發(fā)展之快亦不由得令人驚嘆。如今它依舊蒸蒸日上,猶如華夏文明、傳承之火一般生生不息,歸根結(jié)底主要在于它的跨平臺(tái)及實(shí)用等特性。
現(xiàn)如今已是微服務(wù)、分布式、IOT(物聯(lián)網(wǎng))、5G以及人工智能盛行的時(shí)代,Java在這個(gè)時(shí)代的軟件開發(fā)領(lǐng)域占據(jù)了一席之地,特別是在微服務(wù)、分布式領(lǐng)域,其開源的微框架Spring Boot及Spring Cloud和Dubbo + ZooKeeper組合更是大大鞏固了Java在相關(guān)領(lǐng)域的地位。
現(xiàn)在,開發(fā)者每每談起Java,都離不開Spring Boot(Spring Cloud也是需要基于Spring Boot的),毫不客氣地講,目前企業(yè)大部分的Java應(yīng)用系統(tǒng)是以Spring Boot作為主導(dǎo)的,配以Spring MVC、Mybatis以及中間件等各種組件組合完成整個(gè)系統(tǒng)的業(yè)務(wù)功能,可以說基本上取代了傳統(tǒng)企業(yè)級應(yīng)用系統(tǒng)中以Spring/JavaEE作為主導(dǎo)的開發(fā)模式。
本書站在初學(xué)者的角度,從Spring Boot誕生的緣由和基本概念開始講起,一步一個(gè)腳印地介紹了Spring Boot的基本概念、開發(fā)優(yōu)勢和幾大核心特性,帶領(lǐng)各位讀者一步步搭建第一個(gè)Spring Boot項(xiàng)目(以Spring Boot 2.×版本為主),并以此為基礎(chǔ)介紹并實(shí)戰(zhàn)Spring Boot相關(guān)的核心技術(shù)棧,如基礎(chǔ)配置、數(shù)據(jù)層訪問、Web應(yīng)用開發(fā)以及其他核心技術(shù)等。
為了方便讀者理解與掌握,筆者在介紹相應(yīng)的技術(shù)點(diǎn)時(shí),結(jié)合了企業(yè)中真實(shí)項(xiàng)目的應(yīng)用案例,并配備了相應(yīng)的代碼,讓讀者在理解理論的同時(shí)也能掌握相應(yīng)的開發(fā)技能。
筆者還介紹了目前主流的分布式中間件Redis和RabbitMQ,這可以說是為了提升讀者的開發(fā)能力和就業(yè)競爭力而安排的。畢竟在如今IT行業(yè)競爭激烈、就業(yè)壓力比較大的環(huán)境下,掌握一些分布式中間件,如緩存中間件Redis、消息中間件RabbitMQ可以給自己加分。
在本書的后介紹了企業(yè)里幾乎隨處可見的應(yīng)用系統(tǒng),即權(quán)限管理平臺(tái),它是前面篇章介紹的所有技術(shù)棧的大匯總,即將學(xué)到的技術(shù)應(yīng)用到真實(shí)的系統(tǒng)、真實(shí)的項(xiàng)目開發(fā)中,才是真正的學(xué)以致用,而不是一味地停留在理論或者死記硬背的層面。
本書是一本以代碼實(shí)戰(zhàn)為主、以理論為輔的實(shí)戰(zhàn)書籍,特別適合有一定基礎(chǔ)的Java開發(fā)者及Spring Boot初學(xué)者學(xué)習(xí),也適合高等院校和培訓(xùn)學(xué)校相關(guān)專業(yè)的師生作為教學(xué)參考書。
書中涉及的開發(fā)工具與軟件版本如下:Intellij IDEA(2020)、Spring Boot(2.3.1.RELEASE)、Navicat Premium(11.0) 、JDK(1.8)、MySQL(5.7)、Redis(6.0)、RabbitMQ(3.8)、Linux Centos(7.×)、Postman(7.36.0)、Apache JMeter(5.1.1)。瀏覽器為Chrome 2020。大部分軟件下載可以前往鏈接http://www.fightjava.com/web/index/resource.html ,即“程序員實(shí)戰(zhàn)基地”的“資料中心”搜索下載。
鐘林森 網(wǎng)名debug,Java高級后端工程師。目前在國內(nèi)某互聯(lián)網(wǎng)公司擔(dān)任開發(fā)組長,負(fù)責(zé)公司Java應(yīng)用后端開發(fā),并參與公司IT基礎(chǔ)架構(gòu)體系的研發(fā)。CSDN博客專家,發(fā)表了大量的原創(chuàng)博客文字,博客訪問量達(dá)百萬人次。51CTO學(xué)院、CSDN學(xué)院及網(wǎng)易云課堂等知名教育平臺(tái)講師,教授學(xué)員上萬人。追求技術(shù),熱愛分享,相信技術(shù)改變生活,技術(shù)成就夢想,一直在不斷地學(xué)習(xí)和積累新知識(shí),秉承修羅之道,花名阿修羅。
第1篇Spring Boot基礎(chǔ)篇
第1章走進(jìn)Spring Boot
1.1Spring Boot概述/003
1.1.1Spring Boot簡介/003
1.1.2Spring Boot的優(yōu)勢/003
1.1.3Spring Boot的幾大核心特性/004
1.2開發(fā)環(huán)境準(zhǔn)備/004
1.2.1學(xué)習(xí)Spring Boot的前提與開發(fā)環(huán)境和工具/004
1.2.2基于Spring Initializr構(gòu)建單模塊項(xiàng)目/005
1.2.3寫個(gè)Hello World吧/007
1.2.4單模塊項(xiàng)目的優(yōu)缺點(diǎn)/008
1.3Spring Boot多模塊項(xiàng)目的搭建/009
1.3.1基于Maven構(gòu)建多模塊項(xiàng)目的規(guī)范/009
1.3.2基于Maven構(gòu)建多模塊項(xiàng)目的流程/009
1.3.3寫個(gè)Hello World吧/014
1.4Spring Boot原理初步分析/015
1.4.1Spring Boot起步依賴/016
1.4.2Spring Boot自動(dòng)裝配/018
1.4.3Spring Boot啟動(dòng)執(zhí)行流程/019
第2章Spring Boot基礎(chǔ)配置詳解
2.1Spring Boot單元測試與熱加載/023
2.1.1單元測試簡介與使用/023
2.1.2基于Devtools實(shí)現(xiàn)Spring Boot項(xiàng)目熱加載/025
2.2Spring Boot全局配置文件詳解/028
2.2.1Spring Boot兩大默認(rèn)配置文件介紹/028
2.2.2基于Environment讀取配置文件/029
2.2.3基于@Value讀取配置文件/030
2.2.4基于@ConfigurationProperties映射配置文件/031
2.3Spring Boot自定義配置詳解/033
2.3.1基于@PropertySource加載配置文件/034
2.3.2基于@ImportResource加載XML配置文件/035
2.3.3基于@Configuration編寫自定義配置類/037
2.4Spring Boot多環(huán)境配置詳解/039
2.4.1為什么需要多環(huán)境配置?/039
2.4.2多環(huán)境配置實(shí)戰(zhàn)/039
第3章Spring Boot數(shù)據(jù)訪問層實(shí)戰(zhàn)
3.1基于Spring JdbcTemplate搭建數(shù)據(jù)訪問層/044
3.1.1數(shù)據(jù)訪問層與Spring JdbcTemplate簡介/044
3.1.2Spring Boot整合JdbcTemplate實(shí)現(xiàn)CRUD/044
3.1.3實(shí)戰(zhàn)案例測試/048
3.2基于Mybatis搭建數(shù)據(jù)訪問層/051
3.2.1Mybatis簡介/052
3.2.2Spring Boot整合與配置Mybatis/052
3.2.3Spring Boot整合Mybatis實(shí)現(xiàn)CRUD/053
3.2.4實(shí)戰(zhàn)案例測試與總結(jié)/057
3.3基于Spring Data JPA搭建數(shù)據(jù)訪問層/060
3.3.1Spring Data JPA簡介/061
3.3.2Spring Boot整合與配置Spring Data JPA/061
3.3.3Spring Boot整合Spring Data JPA實(shí)現(xiàn)CRUD/062
3.3.4實(shí)戰(zhàn)案例測試/066
第4章Spring Boot實(shí)現(xiàn)Web常用功能
4.1整合Spring MVC實(shí)現(xiàn)Web常用功能/073
4.1.1Spring MVC簡介與執(zhí)行流程/073
4.1.2Java Web常見的模板引擎/075
4.1.3Thymeleaf配置與常見用法/077
4.2基于SSM實(shí)戰(zhàn)用戶信息管理/081
4.2.1數(shù)據(jù)庫表設(shè)計(jì)/081
4.2.2業(yè)務(wù)邏輯處理層代碼實(shí)戰(zhàn)/083
4.2.3前端代碼實(shí)戰(zhàn)與測試一/086
4.2.4前端代碼實(shí)戰(zhàn)與測試二/089
第2篇Spring Boot核心技術(shù)與高級應(yīng)用篇
第5章Spring Boot核心技術(shù)之上傳下載、發(fā)送郵件與定時(shí)任務(wù)
5.1文件的上傳與下載/094
5.1.1Lombok簡介與實(shí)戰(zhàn)/094
5.1.2文件上傳與下載開發(fā)流程介紹/097
5.1.3基于Java IO實(shí)戰(zhàn)實(shí)現(xiàn)文件上傳/098
5.1.4基于Java IO實(shí)戰(zhàn)實(shí)現(xiàn)文件下載/100
5.1.5基于Java NIO實(shí)戰(zhàn)實(shí)現(xiàn)文件上傳/103
5.1.6基于Java NIO實(shí)戰(zhàn)實(shí)現(xiàn)文件下載/105
5.2發(fā)送郵件與定時(shí)任務(wù)實(shí)戰(zhàn)/108
5.2.1基于Spring Boot整合與配置起步依賴/108
5.2.2基于Spring Boot實(shí)現(xiàn)簡單文本郵件的發(fā)送/109
5.2.3基于Spring Boot實(shí)現(xiàn)富文本郵件的發(fā)送/112
5.2.4基于Spring Boot實(shí)現(xiàn)帶附件郵件的發(fā)送/114
5.2.5定時(shí)任務(wù)與@Scheduled注解實(shí)戰(zhàn)/117
5.2.6基于Java線程池高效執(zhí)行多個(gè)定時(shí)任務(wù)/119
第6章Spring Boot核心技術(shù)之導(dǎo)入導(dǎo)出Excel
6.1典型應(yīng)用場景介紹/125
6.2Excel導(dǎo)出實(shí)戰(zhàn)/127
6.2.1Excel導(dǎo)出開發(fā)流程詳解/127
6.2.2基于POI實(shí)現(xiàn)Excel的導(dǎo)出/128
6.2.3基于EasyExcel實(shí)現(xiàn)Excel的導(dǎo)出/132
6.3Excel導(dǎo)入實(shí)戰(zhàn)/135
6.3.1Excel導(dǎo)入開發(fā)流程詳解/135
1366.3.2基于POI實(shí)現(xiàn)Excel的導(dǎo)入/
6.3.3基于EasyExcel實(shí)現(xiàn)Excel的導(dǎo)入/139
6.3.4兩種實(shí)現(xiàn)方式的對比/142
第7章緩存中間件Redis實(shí)戰(zhàn)
7.1Redis簡介與典型應(yīng)用場景/145
7.2使用Redis/146
7.2.1快速安裝Redis/146
7.2.2在Windows環(huán)境下使用Redis/147
7.2.3Spring Boot 2.0整合與配置Redis/150
7.2.4自定義注入與配置Redis模板操作組件Bean/151
7.2.5RedisTemplate實(shí)戰(zhàn)/152
7.2.6StringRedisTemplate實(shí)戰(zhàn)/154
7.3Redis常見數(shù)據(jù)結(jié)構(gòu)/157
7.3.1字符串String/157
7.3.2列表List/158
7.3.3集合Set/160
7.3.4有序集合SortedSet/161
7.3.5哈希Hash存儲(chǔ)/163
7.3.6Key失效與判斷是否存在/165
7.4Redis消息訂閱發(fā)布機(jī)制/167
7.4.1消息訂閱發(fā)布機(jī)制簡介/167
7.4.2Spring Boot整合Redis實(shí)現(xiàn)消息訂閱發(fā)布/169
7.4.3接口功能測試/172
7.5Redis實(shí)戰(zhàn)場景之緩存擊穿/172
7.5.1什么是緩存擊穿/173
7.5.2緩存擊穿的解決方案/173
7.4.3代碼實(shí)戰(zhàn)之并發(fā)場景復(fù)現(xiàn)/174
7.5.4代碼實(shí)戰(zhàn)之分布式鎖/180
7.6Redis實(shí)戰(zhàn)場景之緩存穿透/184
7.6.1什么是緩存穿透/184
7.6.2緩存穿透的解決方案/185
7.6.3代碼實(shí)戰(zhàn)實(shí)現(xiàn)過程/186
7.6.4其他典型的問題/188
第8章消息中間件RabbitMQ實(shí)戰(zhàn)
8.1RabbitMQ為何物/190
8.1.1RabbitMQ簡介/190
8.1.2常見的應(yīng)用場景/191
8.1.3安裝RabbitMQ與Web管理界面介紹/196
8.1.4RabbitMQ入門代碼實(shí)戰(zhàn)/196
8.2Spring Boot整合RabbitMQ/201
8.2.1RabbitMQ專用組件介紹/201
8.2.2Spring Boot整合RabbitMQ/202
8.2.3自定義注入RabbitMQ操作組件/203
8.2.4發(fā)送接收消息實(shí)戰(zhàn)/204
8.3基于RabbitMQ多種交換器的消息模型實(shí)戰(zhàn)/208
8.3.1基于FanoutExchange的消息模型實(shí)戰(zhàn)/208
8.3.2基于DirectExchange的消息模型實(shí)戰(zhàn)/213
8.3.3基于TopicExchange的消息模型實(shí)戰(zhàn)/216
8.4典型應(yīng)用場景實(shí)戰(zhàn)之異步發(fā)送郵件/221
8.4.1整體業(yè)務(wù)流程介紹與分析/221
8.4.2數(shù)據(jù)庫表設(shè)計(jì)與Mybatis逆向工程/222
8.4.3基于DirectExchange的消息模型發(fā)送接收郵件/223
8.4.4業(yè)務(wù)場景功能接口測試/226
8.5RabbitMQ死信隊(duì)列與延遲隊(duì)列/227
8.5.1簡介、作用與典型應(yīng)用場景/227
8.5.2RabbitMQ死信隊(duì)列之消息模型/229
8.5.3RabbitMQ死信隊(duì)列代碼實(shí)戰(zhàn)/231
8.5.4RabbitMQ延遲隊(duì)列之消息模型/235
8.5.5RabbitMQ延遲隊(duì)列代碼實(shí)戰(zhàn)/238
8.5.6RabbitMQ死信隊(duì)列與延遲隊(duì)列對比/241
第3篇Spring Boot企業(yè)項(xiàng)目實(shí)戰(zhàn)與總結(jié)篇
第9章企業(yè)項(xiàng)目開發(fā)實(shí)戰(zhàn)之權(quán)限管理平臺(tái)
9.1企業(yè)權(quán)限管理平臺(tái)整體介紹/246
9.1.1權(quán)限管理簡介與系統(tǒng)整體介紹/246
9.1.2數(shù)據(jù)庫表設(shè)計(jì)與Mybatis逆向工程/249
9.1.3項(xiàng)目整體搭建流程介紹/255
9.1.4用戶認(rèn)證與授權(quán)框架Shiro簡介/261
9.2用戶登錄功能實(shí)戰(zhàn)/262
9.2.1整體開發(fā)流程介紹/263
9.2.2驗(yàn)證碼組件配置與生成圖形驗(yàn)證碼/264
9.2.3開發(fā)Controller接收用戶登錄請求/266
9.2.4整合Shiro完成用戶的登錄功能/267
9.3部門與菜單模塊開發(fā)實(shí)戰(zhàn)/271
9.3.1相關(guān)數(shù)據(jù)庫表介紹/272
9.3.2部門模塊實(shí)戰(zhàn)之列表數(shù)據(jù)獲取/273
9.3.3基于treeGrid實(shí)現(xiàn)頁面布局與列表展示/277
9.3.4新增與修改部門功能實(shí)戰(zhàn)/279
9.3.5菜單模塊實(shí)戰(zhàn)之列表數(shù)據(jù)獲取/286
9.3.6基于treeGrid實(shí)現(xiàn)頁面布局與列表展示/290
9.3.7新增與修改菜單功能實(shí)戰(zhàn)/292
9.4角色與用戶模塊開發(fā)實(shí)戰(zhàn)/301
9.4.1相關(guān)數(shù)據(jù)庫表介紹/301
9.4.2角色模塊實(shí)戰(zhàn)之列表數(shù)據(jù)獲取/304
9.4.3新增與修改角色功能實(shí)戰(zhàn)/308
9.4.4用戶模塊實(shí)戰(zhàn)之列表數(shù)據(jù)獲取/316
9.4.5新增與修改用戶功能實(shí)戰(zhàn)/320
9.4.6權(quán)限控制實(shí)戰(zhàn)/329
9.5系統(tǒng)安全性防護(hù)、日志存儲(chǔ)與部署上線/338
9.5.1系統(tǒng)安全性防護(hù)之XSS攻擊和SQL注入防御/338
9.5.2日志存儲(chǔ)的必要性與日志列表展示/344
9.5.3基于Spring AOP與自定義注解實(shí)現(xiàn)日志存儲(chǔ)/347
9.5.4項(xiàng)目部署上線/352
后記 總結(jié)與回顧