輕量級 Java EE Web 框架技術 — Spring MVC + Spring + MyBati
李冬海,靳宗信,薑維,黨婉譽
買這商品的人也買了...
-
$890$703 -
$539$512 -
$620$465 -
$607Spring Boot + Vue 開發實戰
-
$556Java EE 的輕量級開發利劍:Spring Boot 實戰
-
$356jQuery Web 開發案例教程
-
$398JQuery 動態網頁設計與製作
相關主題
商品描述
本書介紹Java EE領域的Spring MVC、MyBatis、Spring和Spring Boot這4種主流框架和技術。本書分為5篇。第1篇介紹Java的構建工具javac、Ant和Maven;第2篇介紹構建Web應用的Spring MVC框架;第3篇介紹MyBatis ORM框架;第4篇介紹Spring容器;第5篇介紹Spring Boot。本書重要內容配有界面截圖,關鍵內容還配以示意圖,使復雜的技術更容易理解。書中還融入了學習方法介紹,以使讀者觸類旁通,更輕松地學習和理解其他框架。 本書便於教學與自學,註重理論與應用結合,是與主流技術接軌的教材,可供高校電腦類專業和培訓機構教學以及個人自學使用。
目錄大綱
目錄
第1篇構 建 工 具
第1章初識構建工具31.1安裝和配置JDK3
1.1.1下載JDK3
1.1.2安裝JDK3
1.1.3配置環境變量4
1.1.4測試安裝4
1.2初識構建工具6
1.2.1編寫Hello類6
1.2.2編譯6
1.2.3運行7
1.2.4打包7
1.2.5運行打包文件8
第2章深入構建工具9
2.1構建項目9
2.1.1創建目錄9
2.1.2依賴庫文件9
2.1.3編寫應用類9
2.2編譯11
2.2.1javac編譯選項11
2.2.2javac編譯命令要素11
2.2.3查找依賴類12
2.2.4手工編譯源文件13
2.2.5手工編譯整個項目15
2.2.6亂碼問題15
2.3打包16
2.3.1jar包結構16
2.3.2jar打包命令詳解16
2.3.3打包應用17
2.3.4創建可執行的jar包18
2.3.5手工打包整個項目19
2.4運行20
2.4.1java命令詳解20
2.4.2java命令的運行方式21
2.4.3Java運行要素22
2.4.4依賴庫加載方案22
2.4.5引導類加載方案23
2.4.6擴展類加載方案23
2.4.7用戶類加載方案23
2.4.8ClassLoader方案25
〖3〗輕量級Java EE Web框架技術——Spring MVC+Spring+MyBatis+Spring Boot目錄〖3〗第3章Ant構建工具26
3.1Ant的特點26
3.2下載、安裝和測試Ant26
3.2.1下載Ant26
3.2.2安裝Ant26
3.2.3測試Ant27
3.3初識Ant27
3.3.1build.xml文件27
3.3.2創建目錄28
3.3.3編譯任務29
3.3.4打包任務30
3.3.5運行任務30
3.3.6清除任務31
3.3.7重新運行任務31
3.3.8生成清單文件32
3.4Ant文件命令32
3.4.1創建目錄命令32
3.4.2復制命令33
3.4.3刪除命令33
3.4.4移動命令34
3.5其他命令35
3.5.1時間戳命令35
3.5.2執行SQL語句36
3.6深入Ant36
3.6.1創建目錄37
3.6.2清除項目37
3.6.3編譯項目37
3.6.4classpath構建39
3.6.5打包項目40
3.6.6運行項目41
3.6.7打包可執行的jar(依賴外部)42
3.6.8打包可執行的jar(獨立運行)44
第4章Maven構建工具46
4.1Maven的安裝與配置46
4.1.1下載46
4.1.2設置系統環境變量46
4.1.3檢測安裝47
4.2Maven的基本概念48
4.2.1庫文件管理48
4.2.2配置文件的作用48
4.2.3Maven項目坐標49
4.2.4配置項目依賴庫50
4.2.5項目構建配置信息50
4.2.6Maven項目目錄結構51
4.2.7Maven與Ant的對比51
4.3Maven倉庫52
4.3.1倉庫管理52
4.3.2本地倉庫52
4.3.3遠程倉庫53
4.3.4Maven坐標與倉庫路徑的約定53
4.3.5Maven依賴庫的作用域54
4.4創建項目55
4.4.1生成項目骨架插件55
4.4.2Maven創建項目的命令56
4.4.3可用項目骨架56
4.5創建Java項目58
4.5.1創建命令58
4.5.2下載的庫文件59
4.5.3Maven自動創建的目錄結構59
4.5.4Maven自動創建的pom.xml文件60
4.5.5Maven自動創建的Java類App.java60
4.5.6Maven自動創建的測試類AppTest.java61
4.6編譯項目62
4.6.1編譯命令62
4.6.2編譯生成class文件62
4.7打包項目63
4.7.1打包命令63
4.7.2生成jar包文件64
4.7.3運行項目64
4.8清除編譯結果64
4.9安裝項目65
4.10鏡像倉庫配置66
4.10.1全局配置66
4.10.2單個項目依賴庫鏡像配置67
4.10.3單個項目插件庫鏡像配置68
第5章深入Maven構建工具71
5.1Maven生命周期71
5.1.1項目構建過程與Maven生命周期71
5.1.2Clean生命周期72
5.1.3Default生命周期72
5.1.4Site生命周期73
5.1.5生命周期內各階段和生命周期之間的關系74
5.1.6Maven常用命令74
5.2Maven插件74
5.2.1Maven插件框架74
5.2.2與生命周期有關的插件74
5.2.3插件調用方式76
5.2.4插件調用方式的差異76
5.2.5插件的配置79
5.2.6綁定生命周期與插件目標79
5.3Maven構建配置80
5.3.1<build>標簽80
5.3.2基本元素配置標簽81
5.3.3<resources>標簽81
5.3.4<plugins>標簽82
5.3.5<pluginManagement>標簽83
5.4編譯插件84
5.5打包插件84
5.5.1增加helloapp功能84
5.5.2常用的打包插件85
5.6用jar與dependency插件打包與運行86
5.6.1創建可運行的jar86
5.6.2設置啟動類87
5.6.3設置庫路徑87
5.6.4利用mavendependencyplugin復制jar包87
5.6.5打包安裝88
5.6.6運行包89
5.7用mavenassemblyplugin插件打包與運行89
5.7.1配置mavenassemblyplugin插件89
5.7.2創建可執行的jar包90
5.7.3綁定到default生命周期打包階段90
5.7.4jar包命名91
5.7.5打包安裝91
5.7.6運行包92
5.7.7jar包文件分析92
5.8利用mavenjarplugin與mavenassemblyplugin插件打包與運行93
5.8.1mavenassemblyplugin插件配置93
5.8.2deployment.xml文件配置93
5.8.3打包安裝94
5.8.4運行包95
第6章構建工具Eclipse96
6.1Eclipse下載、安裝和運行96
6.1.1Eclipse下載96
6.1.2Eclipse安裝和運行96
6.2Java項目的編譯98
6.2.1編譯Java項目需要的條件98
6.2.2javac命令98
6.2.3在Maven中編譯98
6.2.4在Eclipse中編譯98
6.3在Eclipse中編譯、打包和運行99
6.3.1創建應用99
6.3.2在開發環境下運行Java程序99
6.3.3配置構建路徑99
6.3.4編譯項目100
6.3.5打包項目101
6.3.6運行jar包104
第7章在Eclipse中使用Maven106
7.1在Eclipse中集成Maven106
7.1.1在Eclipse中安裝Maven106
7.1.2在Eclipse中設置Maven106
7.1.3在Eclipse中設置Maven配置文件106
7.1.4更改Java環境為JDK108
7.2在Eclipse中管理Maven項目109
7.2.1打開Maven創建的項目109
7.2.2恢復項目依賴庫110
7.2.3一般項目與Maven項目的互相轉換112
7.2.4創建Maven項目helloapp1112
7.2.5使用Maven打包114
7.3管理pom.xml文件115
7.3.1總覽pom.xml115
7.3.2依賴管理116
7.3.3查看依賴關系層次結構117
7.3.4全面查看pom.xml117
7.3.5文本編譯頁面118
本篇參考文獻119
第2篇Spring MVC
第8章構建Web應用程序1238.1Tomcat的下載、安裝和啟停123
8.1.1下載Tomcat123
8.1.2安裝Tomcat123
8.1.3啟動和停止Tomcat服務126
8.2在Eclipse中管理Tomcat126
8.2.1添加Tomcat服務器126
8.2.2配置Tomcat服務器128
8.2.3管理Tomcat服務器130
8.3建立動態Web工程130
8.3.1建立動態Web工程WebHello130
8.3.2庫文件路徑130
8.3.3創建類TestMath.java132
8.3.4創建hello.jsp133
8.3.5目錄結構134
8.4編譯134
8.4.1設置編譯的輸出路徑134
8.4.2編譯項目135
8.5部署137
8.5.1配置部署路徑137
8.5.2部署項目138
8.5.3重新部署141
8.6發布測試141
第9章用Maven構建Web應用程序143
9.1在Eclipse中創建Maven Web項目143
9.2完善項目145
9.2.1修改JDK版本146
9.2.2完善項目目錄147
9.2.3修改編譯版本147
9.2.4修改Project Facets的Java版本147
9.2.5添加Tomcat庫文件148
9.2.6修改Project Facets的Runtimes150
9.2.7修改Project Facets的Dynamic Web Module版本152
9.3庫文件管理153
9.3.1添加Maven依賴庫153
9.3.2Eclipse中的Maven庫153
9.4編寫程序154
9.4.1創建類TestMath.java154
9.4.2創建hello.jsp154
9.4.3目錄結構155
9.5用Eclipse編譯Maven項目156
9.6在Eclipse中部署Maven項目157
9.7用Maven管理項目158
9.7.1設置Maven中的JDK版本158
9.7.2編譯項目158
9.7.3打包項目159
9.7.4自定義打包160
9.8Maven依賴的添加161
9.8.1進入Maven網站161
9.8.2查找依賴的jar包161
9.8.3選擇版本161
9.8.4復制依賴xml文件內容163
9.8.5修改pom.xml163
9.8.6自動下載庫164
9.9動態Web工程與Maven Web項目的區別164
第10章MVC框架166
10.1MVC概述166
10.1.1模型166
10.1.2視圖166
10.1.3控制器166
10.2MVC框架的產生167
10.2.1靜態網頁167
10.2.2動態網頁168
10.2.3JSP技術170
10.2.4Servlet+JSP+JavaBean開發模式172
10.2.5MVC框架實現徹底解耦173
10.3Spring MVC的第一個示例174
10.3.1創建動態Web項目174
10.3.2復制Spring MVC庫文件174
10.3.3配置web.xml接管Web請求174
10.3.4Spring MVC配置文件的框架176
10.3.5配置掃描註解177
10.3.6配置視圖頁面177
10.3.7編寫Controller類177
10.3.8編寫視圖178
10.3.9運行項目178
10.4Web應用與MVC179
10.4.1Web應用模型179
10.4.2Web應用中的MVC179
10.4.3解耦原理180
10.4.4Spring MVC處理請求的過程181
10.5學習MVC框架的思路182
10.5.1函數描述與調用182
10.5.2Web請求182
10.5.3對MVC框架的理解182
第11章Spring MVC中的URL請求調用控制器的方法183
11.1概述183
11.2創建動態Web項目183
11.2.1編寫控制器類183
11.2.2編寫顯示日期的視圖184
11.2.3編寫顯示結果說明的視圖184
11.3配置web.xml攔截URL請求185
11.3.1攔截帶擴展名的請求185
11.3.2攔截所有請求185
11.3.3對靜態資源文件放行186
11.4使用@Controller定義控制器186
11.4.1控制器的定義186
11.4.2Spring MVC對控制器組件的管理186
11.5使用@RequestMapping建立映射關系187
11.5.1@RequestMapping註解187
11.5.2處理多個URL188
11.5.3使用URL模板189
11.5.4用params屬性處理特定請求參數191
11.5.5用method屬性處理HTTP的方法192
11.5.6@RequestMapping的組合註解194
11.5.7@RequestMapping默認的處理方法194
11.6URL請求傳遞參數到控制器195
11.6.1概述195
11.6.2方法支持的參數類型195
11.6.3直接將請求參數名作為控制器類方法的形參196
11.6.4使用@RequestParam綁定URL請求參數196
11.6.5使用URL請求中的占位符參數接收參數197
11.6.6使用Pojo對象接收參數198
11.6.7使用@CookieValue獲取cookie值199
11.6.8使用@RequestHeader獲取報文頭200
11.6.9使用HttpServletRequest、HttpSession獲取參數201
11.7URL請求傳遞JSON數據201
11.7.1概述201
11.7.2測試客戶端202
11.7.3使用@RequestBody接收報文體204
11.7.4使用@ResponseBody返回報文體204
11.7.5使用Pojo對象接收JSON數據204
11.7.6使用Map方式接收JSON數據205
11.7.7使用List方式接收JSON數據205
11.7.8使用字符串方式接收JSON數據205
第12章使用Spring MVC中的控制器調用視圖207
12.1控制器調用視圖207
12.1.1概述207
12.1.2控制器支持的返回類型207
12.1.3返回String類型的視圖名稱208
12.1.4返回ModelAndView對象209
12.1.5返回void209
12.1.6返回Map對象210
12.1.7Spring MVC的轉發與重定向211
12.2控制器返回數據213
12.2.1使用@ResponseBody返回報文體213
12.2.2使用@RequestMapping的produces屬性描述報文體215
12.2.3使用響應文本流Writer輸出文本215
12.2.4使用HttpServletResponse輸出文本216
12.3返回JSON數據217
12.3.1創建Controller類217
12.3.2返回實體對象217
12.3.3返回List對象218
12.3.4返回Map對象218
12.3.5返回字符串219
12.3.6使用@RestController生成RESTful API219
12.4@ResponseStatus註解220
12.4.1改變響應狀態碼220
12.4.2用@RequestMapping自定義異常應用221
12.5返回ResponseEntity類型223
12.5.1返回JSON字符串223
12.5.2返回字符串224
12.5.3設置ContentType響應頭224
12.5.4添加任意響應頭信息225
12.5.5返回指定狀態碼225
12.5.6通過靜態方法獲得響應實體對象226
12.5.7ResponseEntity的替代方法227
12.6控制器傳遞數據到視圖229
12.6.1概述229
12.6.2創建控制器類229
12.6.3通過Model對象傳遞數據230
12.6.4通過Map對象傳遞數據230
12.6.5以Map對象作為返回參數傳遞數據231
12.6.6通過ModelAndView對象傳遞數據231
12.6.7使用@ModelAttribute傳遞和保存數據231
12.6.8使用@SessionAttributes傳遞和保存數據233
12.7用視圖獲取參數值236
12.7.1實例236
12.7.2EL表達式取值237
第13章Spring MVC高級應用238
13.1Spring MVC攔截器簡介238
13.2實現Spring MVC攔截器238
13.2.1實現攔截器的方法238
13.2.2實現HandlerInterceptor接口239
13.2.3實現WebRequestInterceptor接口241
13.3登錄權限驗證243
13.3.1編寫登錄權限驗證攔截器243
13.3.2編寫登錄控制器244
13.3.3配置攔截器247
13.3.4編寫登錄頁面248
13.3.5編寫主頁面248
13.3.6編寫查看圖書頁面249
13.3.7運行結果249
13.4文件上傳250
13.4.1Spring MVC MultipartFile250
13.4.2裝配MultipartResolver處理上傳251
13.4.3復制庫文件251
13.4.4創建上傳頁面251
13.4.5創建上傳成功頁面252
13.4.6編寫上傳控制器類253
13.4.7運行結果254
13.5文件下載255
13.5.1通過ResponseEntity下載文件255
13.5.2通過@ResponseBody返回字節數組257
13.5.3通過原生的HttpServletResponse對象下載文件260
13.6Spring MVC的表單標簽庫262
13.6.1引入表單標簽庫262
13.6.2表單標簽庫中的標簽262
13.6.3表單標簽的用法262
13.6.4表單元素標簽的用法263
13.7Spring MVC表單標簽實例266
13.7.1編寫用戶類266
13.7.2編寫添加用戶頁面267
13.7.3編寫顯示用戶信息頁面269
13.7.4創建UserController控制器類270
13.7.5解決亂碼問題271
13.7.6運行結果272
13.8Spring MVC國際化273
13.8.1軟件國際化概述273
13.8.2國際化方案273
13.8.3存儲國際化信息273
13.8.4取出國際化信息274
13.9基於瀏覽器的國際化274
13.9.1建立資源文件275
13.9.2在login.jsp頁面輸出國際化信息275
13.9.3在welcome.jsp頁面輸出國際化信息276
13.9.4在Spring MVC配置文件中配置國際化支持277
13.9.5編寫用戶類277
13.9.6在程序中獲取國際化信息278
13.9.7運行結果279
13.10基於會話的國際化282
13.10.1配置支持基於會話的國際化282
13.10.2處理語言設置282
13.10.3創建可以選擇語言的登錄頁面283
13.10.4運行結果284
13.11基於會話的國際化(語言設置自動處理)285
13.11.1配置語言設置處理285
13.11.2創建登錄頁面286
13.11.3運行結果287
本篇參考文獻288
第3篇MyBatis ORM框架
第14章MyBatis中的ORM29114.1ORM的概念291
14.1.1對象和關系數據庫291
14.1.2ORM的概念291
14.2JDBC持久化293
14.2.1JDBC持久化的特點293
14.2.2JDBC的體系結構293
14.2.3JDBC的執行流程293
14.2.4DriverManager中的解耦295
14.3JDBC中的對象和關系數據庫296
14.3.1配置庫文件297
14.3.2獲取數據庫連接297
14.3.3關閉數據庫連接298
14.3.4定義對象299
14.3.5定義關系300
14.3.6寫數據庫301
14.3.7讀數據庫302
14.3.8測試303
14.4ORM框架持久化303
14.4.1ORM框架簡介303
14.4.2MyBatis簡介304
14.5MyBatis的用法305
14.5.1配置庫文件305
14.5.2映射信息305
14.5.3映射文件306
14.5.4MyBatis配置文件307
14.5.5調用映射文件中的命令id309
14.5.6約定表字段名與對象屬性名的映射關系312
14.5.7約定表字段的SQL別名與對象屬性名的映射關系313
14.5.8通過resultMap配置嵌套映射關系314
14.5.9MyBatis小結315
第15章MyBatis讀取數據庫316
15.1<select>標簽316
15.1.1輸入參數類型316
15.1.2輸出參數類型317
15.1.3標簽體中的SQL語句317
15.1.4創建映射配置文件317
15.1.5創建測試類318
15.2<select>標簽返回數據318
15.2.1返回實體對象318
15.2.2通過resultMap標示返回返回結果的類型319
15.2.3返回實體對象集合320
15.2.4返回HashMap321
15.2.5返回HashMap集合322
15.2.6返回Map型實體集合322
15.2.7返回Map型Map集合323
15.3resultMap324
15.3.1resultMap簡介324
15.3.2表名與類名映射325
15.3.3表字段與對象屬性映射325
15.3.4表主鍵字段映射326
15.4多表關聯查詢327
15.4.1創建賬戶表account327
15.4.2創建賬戶類Account327
15.4.3創建賬戶映射配置文件accountMapper.xml328
15.4.4創建學生賬戶類StudentAccount329
15.4.5創建學生賬戶映射配置文件StudentAccountMapper.xml329
15.4.6創建課程表course330
15.4.7創建學生課程表student_course330
15.4.8創建課程類Course330
15.4.9創建學生課程類StudentCourse331
15.4.10創建學生課程映射配置文件StudentCourseMapper.xml332
15.4.11映射要素332
15.5一對一關聯映射查詢332
15.5.1用級聯屬性配置映射332
15.5.2關聯子配置嵌套映射334
15.5.3關聯resultMap配置嵌套映射336
15.5.4關聯查詢配置嵌套映射337
15.6一對多關聯映射查詢339
15.6.1集合元素配置嵌套映射339
15.6.2集合resultMap配置嵌套映射342
15.6.3集合查詢配置嵌套映射343
15.7多對多關聯映射查詢345
15.7.1返回多條記錄345
15.7.2集合配置嵌套映射346
15.7.3雙向多對多輸出348
第16章MyBatis寫數據庫350
16.1簡介350
16.1.1MyBatis中的DAO框架350
16.1.2DAO模式351
16.2創建用戶表及用戶類351
16.2.1創建用戶表user351
16.2.2編寫實體類User351
16.3在Mapper文件中定義命令353
16.3.1增加標簽353
16.3.2刪除標簽354
16.3.3修改標簽354
16.3.4查詢標簽354
16.4DAO層調用Mapper映射文件中的命令355
16.4.1MyBatis的構建流程355
16.4.2MyBatis的執行流程356
16.4.3構建SqlSessionFactory357
16.4.4從SqlSessionFactory中獲取SqlSession358
16.4.5通過SqlSession執行命令359
16.5調用Mapper命令示例359
16.5.1增加用戶359
16.5.2刪除用戶360
16.5.3修改用戶信息360
16.5.4查詢用戶信息361
16.5.5運行結果362
16.6原始DAO層開發362
16.6.1Mapper配置文件namespace屬性362
16.6.2Mapper配置文件的加載363
16.6.3定義訪問接口363
16.6.4編寫訪問接口的實現363
16.6.5測試代碼365
16.6.6運行結果366
16.7Mapper動態代理方式DAO層開發366
16.7.1Mapper配置文件中的namespace屬性366
16.7.2Mapper接口367
16.7.3通過動態代理獲取DAO對象368
16.7.4運行結果369
16.8Mapper配置文件的加載370
16.8.1Mapper接口類方式370
16.8.2包路徑方式370
16.8.3資源文件方式370
16.9DAO中的參數傳遞371
16.9.1創建Mapper接口371
16.9.2創建Mapper配置文件371
16.9.3創建測試類372
16.9.4使用實體傳參372
16.9.5使用Map對象傳參373
16.9.6使用順序號傳參374
16.9.7使用@Param註解傳參375
16.9.8使用@Param註解定義的實體參數名傳參376
16.9.9使用List傳參377
16.9.10使用${…}傳參379
第17章MyBatis高級應用381
17.1MyBatis的動態SQL381
17.1.1MyBatis動態標簽381
17.1.2創建Mapper接口381
17.1.3創建測試類382
17.2動態SQL條件判斷382
17.2.1語句說明382
17.2.2根據查詢條件實現動態查詢384
17.2.3使用<choose>標簽實現動態查詢385
17.2.4根據參數值動態更新某些字段387
17.3動態SQL內容處理388
17.3.1where語句處理388
17.3.2用<trim>標簽處理where語句390
17.3.3set語句391
17.3.4bind元素定義參數393
17.3.5<selectKey>標簽394
17.3.6多數據庫廠商支持395
17.4直接執行SQL語句396
17.4.1創建Mapper接口396
17.4.2創建映射文件396
17.4.3創建測試類397
17.4.4查詢單個記錄397
17.4.5查詢多個記錄398
17.4.6修改記錄399
17.4.7增加記錄399
17.4.8刪除記錄400
17.4.9完整代碼401
17.5SQL語句構建器402
17.5.1問題402
17.5.2解決方法402
17.5.3構建器命令詳解403
17.6構建器應用404
17.6.1查詢單個記錄404
17.6.2查詢多個記錄405
17.6.3刪除記錄405
17.6.4增加記錄406
17.6.5修改記錄406
17.7MyBatis註解407
17.7.1簡介407
17.7.2註解命令407
17.7.3註解接口410
17.7.4測試類411
17.8註解SQL的Provider方式412
17.8.1創建Mapper接口412
17.8.2創建SQL提供類413
17.8.3創建測試類413
17.8.4@SelectProvider註解413
17.8.5@InsertProvider註解415
17.8.6@UpdateProvider註解416
17.8.7@DeleteProvider註解418
本篇參考文獻420
第4篇Spring與Spring容器
第18章Spring概述42318.1傳統對象的創建423
18.1.1對象創建者與使用者的關系423
18.1.2創建Maven項目423
18.1.3創建Food類423
18.1.4創建Person1類424
18.1.5測試與小結424
18.2使用工廠創建對象425
18.2.1對象創建者與使用者的關系425
18.2.2創建工廠FoodFactory類425
18.2.3創建Person2類426
18.2.4測試與小結426
18.3使用Spring創建對象427
18.3.1對象創建者與使用者的關系427
18.3.2添加Spring的Maven依賴427
18.3.3創建Person3類427
18.3.4Spring Bean配置428
18.3.5測試與小結429
第19章Spring容器431
19.1控制反轉431
19.2依賴查找432
19.2.1依賴查找的概念432
19.2.2用JDBC獲取數據庫連接432
19.2.3用JNDI獲取數據源433
19.3依賴註入435
19.3.1依賴註入的概念435
19.3.2構造子註入436
19.3.3設置註入437
19.3.4接口註入439
19.3.5小結441
19.4Bean的單例與多例模式442
19.4.1Bean的作用域442
19.4.2餓漢模式和懶漢模式442
19.4.3單例與多例的應用場景442
19.4.4單例測試443
19.4.5多例測試444
19.5Bean的實例化445
19.5.1構造方法445
19.5.2靜態工廠方法446
19.5.3實例化工廠方法446
19.5.4測試447
19.6自動裝配447
19.6.1指定裝配448
19.6.2按類型裝配448
19.6.3按名稱裝配448
19.6.4按構造方法參數類型裝配448
19.6.5全局自動裝配449
19.7容器的生命周期450
19.7.1容器的生命周期概述450
19.7.2容器的啟動450
19.7.3創建Bean452
19.7.4獲取Bean452
19.7.5容器的關閉453
19.8Bean的生命周期453
19.8.1Bean生命周期概述453
19.8.2感知接口454
19.8.3Bean獲取自己的名稱455
19.8.4在Bean中獲取Bean工廠455
19.8.5Bean的初始化與銷毀前事件455
19.8.6配置實現Bean初始化方法455
19.8.7接口實現Bean初始化方法456
19.8.8配置實現Bean銷毀前方法456
19.8.9接口實現Bean銷毀前方法456
19.8.10Bean生命周期測試457
第20章Spring註解配置459
20.1配置Bean的方式459
20.1.1Spring Bean的3種配置方式459
20.1.2XML配置方式459
20.2Spring註解配置460
20.2.1註解的特點460
20.2.2註解與XML配置的區別461
20.2.3配置要掃描的包461
20.2.4註解Spring組件462
20.2.5Bean的作用域463
20.3註解自動裝配463
20.3.1基本類型屬性註入463
20.3.2按類型裝配(@Autowired)464
20.3.3按名稱裝配(@Autowired與@Qualifier)464
20.3.4@Autowired的required屬性464
20.3.5按類型裝配(@Resource)464
20.3.6按名稱裝配(@esource(name="xxx"))465
20.4註解Bean的生命周期465
20.4.1Bean初始化465
20.4.2Bean銷毀前465
20.5基於JavaConfig類的Bean配置465
20.5.1JavaConfig類465
20.5.2加載JavaConfig類啟動容器466
20.6使用JavaConfig類手動裝配467
20.6.1調用創建Bean的方法裝配Bean467
20.6.2通過創建Bean的方法的參數裝配Bean467
20.6.3在創建Bean的方法中直接實例化Bean468
20.7使用JavaConfig類自動裝配468
20.7.1按類型裝配Bean468
20.7.2按名稱裝配Bean468
20.8JavaConfig配置生命周期469
20.8.1Bean初始化469
20.8.2Bean銷毀前469
20.9JavaConfig類實例模式配置469
20.9.1單例模式469
20.9.2多例模式470
20.10JavaConfig類中的組件掃描470
20.10.1默認掃描包470
20.10.2指定掃描包471
20.10.3排除掃描特定類471
20.10.4掃描特定類471
第21章Spring擴展473
21.1概述473
21.2多個配置文件473
21.2.1<import>標簽473
21.2.2@Import註解474
21.2.3@Import ImportSelector474
21.3動態創建Bean475
21.3.1概述475
21.3.2FactoryBean接口476
21.3.3FactoryBean示例476
21.3.4Spring與MyBatis整合中的FactoryBean示例477
21.4動態註冊Bean定義: BeanDefinitionRegistryPostProcessor478
21.4.1概述478
21.4.2BeanDefinitionRegistryPostProcessor接口478
21.4.3BeanDefinitionRegistryPostProcessor示例479
21.4.4配置類後處理器480
21.4.5配置類後處理器的處理機制481
21.5動態註冊Bean定義: ImportBeanDefintionRegistrar482
21.5.1ImportBeanDefintionRegistrar接口482
21.5.2處理機制482
21.5.3ImportBeanDefintionRegistrar示例483
21.6動態修改Bean定義: BeanFactoryPostProcessor485
21.6.1BeanFactoryPostProcessor概述485
21.6.2BeanFactoryPostProcessor示例485
21.7動態修改Bean: BeanPostProcessor487
21.7.1BeanPostProcessor概述487
21.7.2BeanPostProcessor示例488
21.7.3自定義註解的實現489
第22章Spring與MyBatis整合495
22.1創建Maven項目SpringMyBatis495
22.2Spring配置文件496
22.3數據源Bean的管理和配置497
22.3.1數據源依賴包497
22.3.2數據庫信息配置498
22.3.3引入屬性文件498
22.3.4數據源Bean的配置498
22.4會話工廠Bean的管理和配置499
22.4.1會話工廠依賴包499
22.4.2會話工廠Bean的配置499
22.4.3配置掃描Mapper文件的路徑500
22.4.4配置實體類所在的包500
22.4.5指定MyBatis配置文件的位置501
22.5DAO Bean配置管理501
22.5.1單個Mapper DAO Bean501
22.5.2批量Mapper DAO Bean502
22.5.3獲取DAO Bean504
22.6掃描全部Bean管理配置504
22.7事務管理Bean504
22.7.1事務管理依賴配置504
22.7.2事務管理Bean配置505
22.8AspectJ支持自動代理實現AOP功能505
22.9編寫應用505
22.9.1編寫服務類505
22.9.2編寫測試類506
22.10Spring使用的註解507
第23章SSM整合511
23.1創建Maven項目SSMApp511
23.2引入依賴512
23.2.1引入Spring MVC依賴512
23.2.2設置打包插件512
23.3SSM中的Spring整合513
23.3.1啟動Spring513
23.3.2Spring與Spring MVC框架的整合514
23.4編寫控制器514
23.4.1編寫StudentController514
23.4.2添加登錄方法515
23.4.3添加登錄判斷方法515
23.4.4添加主頁面映射515
23.4.5添加查看圖書映射516
23.4.6添加退出方法516
23.5登錄驗證攔截器516
23.5.1攔截器定義516
23.5.2攔截器配置517
23.6在Eclipse中部署測試517
23.7用Maven打包518
23.7.1設置打包方式518
23.7.2設置編譯時依賴518
23.7.3打包519
本篇參考文獻520
第5篇Spring Boot
第24章Spring Boot入門52324.1Spring Boot概述523
24.1.1什麽是Spring Boot523
24.1.2使用Spring Boot的好處523
24.2第一個Spring Boot程序524
24.2.1用Maven構建項目524
24.2.2設置mavenjarplugin版本525
24.2.3更新Maven項目526
24.2.4項目結構527
24.2.5引入父模塊528
23.2.6引入Web模塊528
23.2.7創建Controller類528
24.2.8創建主程序529
24.2.9啟動主程序529
24.2.10總結530
24.2.11Spring Boot的核心特性530
24.3Spring Boot主程序分析530
24.3.1@SpringBootApplication註解531
24.3.2組件定義532
24.3.3組件配置532
24.3.4組件掃描533
24.3.5自定義組件掃描533
24.3.6生成容器啟動掃描533
24.3.7從容器中獲取Bean534
第25章Spring Boot自動裝配536
25.1自動裝配機制536
25.1.1SPI機制536
25.1.2JDBC中的SPI機制536
25.1.3Spring Boot中的類SPI擴展機制539
25.2自動配置包管理540
25.2.1引入機制540
25.2.2註冊機制540
25.2.3註冊邏輯541
25.3自動裝配引入器541
25.3.1自動裝配引入器配置541
25.3.2引入機制542
25.3.3執行機制542
25.4獲得所有自動裝配類的配置543
25.4.1自動裝配類的配置543
25.4.2執行機制544
25.4.3自動裝配類的獲取544
25.5獲得自動裝配類的過濾條件546
25.5.1過濾條件配置546
25.5.2執行機制546
25.5.3過濾條件獲取547
第26章有條件裝配Bean548
26.1概述548
26.1.1Bean的配置方法548
26.1.2Bean的有條件註冊548
26.2無條件創建Bean548
26.2.1創建Spring Boot項目549
26.2.2創建Bean549
26.2.3使用Bean550
26.3條件註解@Conditional551
26.3.1Condition接口與實現552
26.3.2設置環境變量552
26.3.3有條件註冊Bean553
26.4簡化條件註解554
26.4.1概述554
26.4.2屬性條件註解555
26.5將條件註解到類上557
26.5.1類條件註解557
26.5.2示例558
26.6條件自動配置558
26.6.1條件自動配置簡介558
26.6.2創建自動配置類559
26.6.3創建自動配置文件spring.factories559
26.6.4自動配置條件文件560
26.6.5條件成立測試560
26.6.6條件不成立測試561
第27章Spring Boot屬性配置和使用562
27.1默認配置562
27.1.1在類中設置初始值562
27.1.2在自動配置類中設置初始值562
27.2配置文件563
27.2.1配置文件簡介563
27.2.2yml格式配置文件563
27.2.3多環境配置文件565
27.2.4配置文件優先級565
27.3註入配置值566
27.4配置屬性註解567
27.4.1定義屬性配置類567
27.4.2配置Bean的使用567
27.5掃描配置Bean及@ConfigurationProperties569
27.5.1掃描入口569
27.5.2@ComponentScan+@Component569
27.5.3@Configuration+@Import570
27.5.4@Configuration+@Bean571
27.5.5@Configuration+@Bean+@import573
27.5.6@Configuration+@EnableConfigurationProperties575
27.5.7@EnableAutoConfiguration576
第28章自定義Spring Boot Starter578
28.1Spring Boot起步依賴概述578
28.1.1起步依賴機制578
28.1.2為什麽要自定義起步依賴578
28.2創建第三方應用579
28.2.1建立Maven項目579
28.2.2建立Food類579
28.2.3編譯、打包和安裝580
28.3創建自動配置項目580
28.3.1建立foodspringbootstarterautoconfigure項目580
28.3.2添加springbootautoconfigure依賴581
28.3.3添加第三方依賴581
28.3.4建立屬性配置類582
28.3.5建立工廠類582
28.3.6配置自動配置類583
28.3.7配置自動配置類啟動條件583
28.3.8編譯、打包和安裝583
28.4創建啟動項目584
28.4.1啟動模塊概述584
28.4.2建立foodspringbootstarter項目584
28.4.3添加Spring基本起步依賴585
28.4.4添加自動配置模塊依賴585
28.4.5添加第三方應用依賴585
28.4.6編譯、打包和安裝586
28.5創建應用項目586
28.5.1建立foodApp項目586
28.5.2添加起步依賴模塊587
28.5.3建立Person類587
28.5.4配置屬性文件587
28.5.5建立啟動類588
28.5.6測試運行588
28.5.7依賴啟動關系588
第29章Spring Boot集成SSM589
29.1Spring Boot應用啟動器589
29.2初始化工程591
29.2.1建立Spring Boot項目SpringBootSSM591
29.2.2多環境配置591
29.3集成Spring MVC和Tomcat592
29.3.1引入springbootstarterweb啟動依賴592
29.3.2配置信息592
29.3.3配置信息詳解593
29.3.4編寫控制器類595
29.3.5掃描組件595
29.3.6測試Web應用595
29.4集成數據源596
29.4.1引入springbootstarterjdbc起步依賴596
29.4.2引入數據庫驅動依賴596
29.4.3引入數據源依賴596
29.4.4配置屬性597
29.4.5測試數據源597
29.5集成MyBatis598
29.5.1引入mybatisspringbootstarter起步依賴598
29.5.2配置映射文件屬性599
29.5.3註解掃描Mapper接口類599
29.5.4創建學生類600
29.5.5創建學生映射文件601
29.5.6創建學生映射接口603
29.5.7測試MyBatis603
29.6支持JSP604
29.6.1外置容器對JSP的處理604
29.6.2引入依賴605
29.6.3內置容器對JSP的處理605
29.6.4配置屬性606
29.6.5創建JSP文件目錄606
29.6.6訪問JSP文件607
29.6.7創建控制器607
29.6.8JSP頁面熱部署608
29.7Spring攔截器608
29.7.1定義Spring攔截器608
29.7.2註冊Spring攔截器609
29.7.3測試610
29.8熱部署610
29.8.1添加依賴610
29.8.2熱部署啟動測試611
29.9項目打包611
29.9.1打包插件611
29.9.2打包612
29.9.3運行612
29.10打包資源文件613
29.10.1配置資源文件613
29.10.2打包並運行614
29.11JSP項目打包war614
29.11.1打包為war格式614
29.11.2修改依賴615
29.11.3註冊webapp資源目錄615
29.11.4打包616
29.11.5獨立運行616