本書從實(shí)戰(zhàn)入手,通過大量示例介紹了Spring+SpringMVC+MyBatis整合開發(fā)的相關(guān)內(nèi)容,提升讀者對(duì)框架的掌握度和理解度,從而實(shí)現(xiàn)對(duì)框架會(huì)用、用對(duì)及精用的目標(biāo)。本書共18章,分為5篇。第1篇Spring核心框架,涵蓋Spring概述、Spring IoC容器初探、Web項(xiàng)目環(huán)境搭建與項(xiàng)目創(chuàng)建、Spring IoC容器進(jìn)階、基于注解和代碼的配置、Spring測(cè)試;第2篇Spring MVC框架,涵蓋Spring Web MVC概述、數(shù)據(jù)類型轉(zhuǎn)換、驗(yàn)證與異常處理,以及Spring MVC進(jìn)階和測(cè)試框架;第3篇數(shù)據(jù)技術(shù),涵蓋數(shù)據(jù)庫(kù)與Java數(shù)據(jù)訪問技術(shù)、MyBatis基本使用、MyBatis進(jìn)階、Spring數(shù)據(jù)訪問與事務(wù)管理;第4篇SSM整合開發(fā),涵蓋SSM整合概述與SSM整合實(shí)例;第5篇高級(jí)開發(fā)技術(shù),涵蓋Spring AOP與MVC攔截器,以及Spring Security框架與多線程。本書適合具備Java基礎(chǔ)的SSM初學(xué)者和進(jìn)階開發(fā)人員閱讀,也適合Java Web開發(fā)工程師閱讀;對(duì)于探究Spring及Spring Boot框架機(jī)制與原理的工程師也具有參考意義。
前言
第1篇 Spring核心框架
第1章 Spring概述2
1.1 Spring的由來(lái)與發(fā)展2
1.1.1 Java簡(jiǎn)史3
1.1.2 Spring編年簡(jiǎn)史5
1.2 Spring的概念及理念6
1.3 Spring框架體系結(jié)構(gòu)7
1.4 Spring生態(tài)圈10
1.5 Spring資源與社區(qū)12
1.6 Spring綜述13
第2章 Spring IoC容器初探14
2.1 Spring IoC容器及相關(guān)概念14
2.1.1 組件、框架和容器14
2.1.2 JavaBean、POJO和EJB簡(jiǎn)介16
2.1.3 IoC與DI簡(jiǎn)介17
2.1.4 Spring與EJB簡(jiǎn)介19
2.2 Spring容器初始化20
2.2.1 BeanFactory與ApplicationContext20
2.2.2 ApplicationContext初始化方式21
2.2.3 Spring基于XML的配置文件結(jié)構(gòu)23
2.2.4 Bean的配置方式24
2.2.5 哪些類需要配置成Bean25
2.2.6 容器的關(guān)閉25
2.2.7 Spring容器的定義26
2.3 依賴注入與方式26
2.3.1 構(gòu)造函數(shù)注入27
2.3.2 設(shè)置值注入28
第3章 Web項(xiàng)目環(huán)境搭建與項(xiàng)目創(chuàng)建30
3.1 環(huán)境與前置準(zhǔn)備30
3.1.1 JDK的下載與安裝30
3.1.2 Eclipse的下載與安裝32
3.1.3 Tomcat的下載與安裝33
3.1.4 MySQL的下載與安裝34
3.1.5 Maven的下載與安裝35
3.2 基于Maven和Eclipse建立項(xiàng)目36
3.2.1 在Eclipse中創(chuàng)建Maven Web項(xiàng)目37
3.2.2 將Maven創(chuàng)建的Web項(xiàng)目導(dǎo)入Eclipse中38
3.2.3 Eclipse編譯器和項(xiàng)目特性修改39
3.3 Spring框架導(dǎo)入與項(xiàng)目目錄41
3.3.1 Spring核心包及相關(guān)依賴包的導(dǎo)入41
3.3.2 項(xiàng)目目錄結(jié)構(gòu)及創(chuàng)建42
3.4 簡(jiǎn)單的完整實(shí)例43
第4章 Spring IoC容器進(jìn)階46
4.1 Bean實(shí)例化的更多方式46
4.1.1 靜態(tài)內(nèi)部類46
4.1.2 靜態(tài)工廠方法47
4.1.3 實(shí)例工廠方法47
4.2 Bean的配置屬性48
4.2.1 Bean的作用域配置49
4.2.2 Bean初始化或銷毀的生命周期回調(diào)50
4.2.3 懶加載Bean51
4.2.4 Bean定義的繼承52
4.3 依賴注入的配置53
4.3.1 多個(gè)對(duì)象的依賴注入53
4.3.2 簡(jiǎn)單類型的依賴注入55
4.3.3 集合類型的依賴注入58
4.3.4 內(nèi)部Bean的依賴注入59
4.3.5 Bean方法的替換59
4.3.6 自動(dòng)裝配60
4.4 特殊的依賴配置61
4.4.1 depends-on前置依賴配置61
4.4.2 方法注入—不同作用域Bean的依賴配置62
4.4.3 循環(huán)依賴的解決63
4.5 XML配置進(jìn)階64
4.5.1 依賴注入配置的簡(jiǎn)寫64
4.5.2 多XML配置文件64
4.6 容器與Bean擴(kuò)展點(diǎn)65
4.6.1 全局與容器生命周期回調(diào)65
4.6.2 容器加載定義擴(kuò)展—BeanFactoryPostProcessor66
4.6.3 容器擴(kuò)展點(diǎn)—BeanPostProcessor68
4.6.4 Aware接口—獲取容器資源68
4.7 Spring IoC容器綜述70
第5章 基于注解和代碼的配置73
5.1 Java注解73
5.1.1 Java基本注解73
5.1.2 Java注解標(biāo)準(zhǔn)75
5.2 Spring支持的注解類型與開啟方式76
5.2.1 Spring支持的注解類型76
5.2.2 Spring注解功能的開啟方式77
5.3 Spring支持的Java標(biāo)準(zhǔn)注解78
5.3.1 @PostConstruct和@PreDestroy78
5.3.2 @Named—組件注解78
5.3.3 @Resource—依賴注入注解79
5.3.4 @Inject—依賴注入79
5.4 Spring容器配置注解80
5.4.1 @Required—依賴項(xiàng)檢查80
5.4.2 @Autowired—依賴對(duì)象的自動(dòng)裝配81
5.4.3 @Component—組件注解82
5.4.4 @Bean—方法層級(jí)的組件注解85
5.5 自動(dòng)裝配的更多介紹86
5.5.1 自動(dòng)裝配的required配置86
5.5.2 自動(dòng)裝配的順序和選擇86
5.5.3 自動(dòng)裝配的使用89
5.6 基于Java代碼的配置89
5.6.1 @Configuration——配置類注解90
5.6.2 Java代碼配置的容器初始化90
5.6.3 @ComponentScan—組件掃描注解91
5.6.4 @Import—配置類導(dǎo)入注解92
5.7 容器注解匯總92
第6章 Spring測(cè)試94
6.1 關(guān)于測(cè)試94
6.1.1 單元測(cè)試95
6.1.2 集成測(cè)試97
6.1.3 測(cè)試的一些概念97
6.2 Java測(cè)試框架98
6.2.1 JUnit單元測(cè)試框架98
6.2.2 JUnit批量測(cè)試102
6.2.3 JUnit運(yùn)行器103
6.2.4 JUnit 4與JUnit 5的比較104
6.2.5 TestNG簡(jiǎn)介及與JUnit的比較105
6.3 基于Spring的測(cè)試106
6.3.1 JUnit中加入Spring容器進(jìn)行測(cè)試106
6.3.2 Spring測(cè)試模塊108
6.3.3 Spring測(cè)試模塊對(duì)單元測(cè)試的支持109
6.3.4 Spring測(cè)試框架111
6.4 Spring測(cè)試注解116
6.4.1 Spring測(cè)試專用的注解116
6.4.2 測(cè)試支持的標(biāo)準(zhǔn)注解119
6.4.3 基于JUnit 4支持的注解121
6.4.4 基于JUnit Jupiter(JUnit 5)支持的注解123
6.5 測(cè)試框架注解匯總125
第2篇 Spring MVC框架
第7章 Spring Web MVC概述128
7.1 HTTP Web基礎(chǔ)知識(shí)128
7.1.1 HTML與HTTP128
7.1.2 HTTP請(qǐng)求類型129
7.1.3 MIME類型129
7.1.4 狀態(tài)碼130
7.2 Java Web開發(fā)131
7.2.1 Servlet技術(shù)131
7.2.2 JSP技術(shù)138
7.2.3 MVC模式141
7.3 Spring MVC介紹與實(shí)例141
7.3.1 Spring MVC框架處理流程142
7.3.2 Spring Web快速Demo實(shí)例143
7.4 Spring MVC技術(shù)細(xì)節(jié)146
7.4.1 DispatcherServlet—中央控制器146
7.4.2 HandlerMapping—處理器映射器148
7.4.3 HandlerAdapter—處理器適配器150
7.4.4 視圖與視圖解析器153
7.5 Spring MVC注解配置155
7.5.1 組件與依賴注解156
7.5.2 請(qǐng)求映射與參數(shù)注解156
7.5.3 @ModelAttribute模型屬性注解160
7.6 基于代碼配置的Spring MVC項(xiàng)目162
7.6.1 Java代碼進(jìn)行Spring MVC的容器配置162
7.6.2 Java代碼替代web.xml文件的入口配置163
7.7 MVC注解匯總164
第8章 數(shù)據(jù)類型的轉(zhuǎn)換、驗(yàn)證與異常處理166
8.1 類型轉(zhuǎn)換166
8.1.1 屬性編輯器:PropertyEditor166
8.1.2 轉(zhuǎn)換器服務(wù):ConversionService168
8.1.3 類型轉(zhuǎn)換在容器中的使用173
8.2 數(shù)據(jù)綁定176
8.2.1 Bean封裝器:BeanWrapper176
8.2.2 數(shù)據(jù)綁定器:DataBinder與WebDataBinder178
8.2.3 綁定器初始化注解:@InitBinder180
8.2.4 HTTP消息轉(zhuǎn)換器:HttpMessageConverter181
8.3 數(shù)據(jù)驗(yàn)證184
8.3.1 JavaBean標(biāo)準(zhǔn)校驗(yàn)184
8.3.2 Spring核心容器的驗(yàn)證186
8.3.3 Spring MVC容器的驗(yàn)證188
8.3.4 驗(yàn)證器配置及增加自定義驗(yàn)證器189
8.3.5 驗(yàn)證器使用層級(jí)及手動(dòng)調(diào)用191
8.4 Spring MVC異常處理192
8.4.1 Controller類層級(jí)異常處理:@ExceptionHandler192
8.4.2 全局的異常處理:@ControllerAdvice193
8.4.3 XML配置異常處理194
第9章 Spring MVC進(jìn)階195
9.1 靜態(tài)資源的放行195
9.1.1 配置Servlet處理靜態(tài)資源196
9.1.2 配置
放行動(dòng)態(tài)資源196
9.1.3 配置
放行動(dòng)態(tài)資源197
9.2 父子容器197
9.2.1 Spring的父子容器197
9.2.2 Spring MVC的父子容器200
9.2.3 Spring MVC父子容器的配置202
9.3 Spring MVC與JSON204
9.3.1 JSON介紹204
9.3.2 Java對(duì)JSON的支持206
9.3.3 Spring MVC使用JSON210
9.4 Spring MVC與REST214
9.4.1 REST的概念與應(yīng)用214
9.4.2 Spring MVC REST服務(wù)端:@RestController218
9.4.3 Spring MVC REST客戶端:RestTemplate219
9.5 文件上傳223
9.5.1 多部分表單數(shù)據(jù)類型:multipart/form-data223
9.5.2 Java文件上傳功能實(shí)現(xiàn)方式225
9.5.3 Spring MVC 文件上傳功能的實(shí)現(xiàn)方式228
9.5.4 Spring MVC文件上傳最佳實(shí)踐231
9.6 國(guó)際化233
9.6.1 Java國(guó)際化233
9.6.2 Spring國(guó)際化236
9.6.3 Spring MVC國(guó)際化237
9.6.4 語(yǔ)言環(huán)境解析器:LocaleResolver239
9.6.5 Spring MVC語(yǔ)言環(huán)境的動(dòng)態(tài)修改244
9.6.6 Spring MVC國(guó)際化的使用245
第10章 Spring MVC測(cè)試框架247
10.1 Spring MVC測(cè)試概述247
10.1.1 Spring MVC的測(cè)試方式247
10.1.2 Spring Web測(cè)試實(shí)例與測(cè)試的整體框架248
10.2 模擬應(yīng)用服務(wù)(MockMvc)及其構(gòu)建器251
10.2.1 獨(dú)立測(cè)試MockMvc構(gòu)建器:StandaloneMockMvcBuilder251
10.2.2 集成測(cè)試MockMvc構(gòu)建器:DefaultMockMvcBuilder252
10.3 模擬請(qǐng)求構(gòu)造器254
10.3.1 模擬請(qǐng)求參數(shù)傳遞255
10.3.2 模擬請(qǐng)求構(gòu)造器的請(qǐng)求相關(guān)設(shè)置257
10.4 結(jié)果操作258
10.4.1 結(jié)果操作接口:ResultActions259
10.4.2 結(jié)果匹配器接口:ResultMatcher260
10.4.3 結(jié)果處理器:MockMvcResultHandlers265
10.4.4 獲取MvcResult后自定義驗(yàn)證266
10.5 Spring MVC測(cè)試框架之其他266
10.5.1 測(cè)試代碼簡(jiǎn)寫267
10.5.2 獨(dú)立測(cè)試的依賴處理268
10.5.3 文件上傳測(cè)試268
第3篇 數(shù)據(jù)技術(shù)
第11章 數(shù)據(jù)庫(kù)與Java數(shù)據(jù)訪問技術(shù)272
11.1 關(guān)系型數(shù)據(jù)庫(kù)介紹272
11.1.1 關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品272
11.1.2 關(guān)系型數(shù)據(jù)庫(kù)及其對(duì)象273
11.1.3 關(guān)系型數(shù)據(jù)庫(kù)事務(wù)274
11.1.4 SQL語(yǔ)言276
11.2 MySQL數(shù)據(jù)庫(kù)276
11.2.1 MySQL數(shù)據(jù)類型277
11.2.2 基于MySQL的基本SQL語(yǔ)句279
11.2.3 MySQL高級(jí)對(duì)象與功能281
11.3 Java數(shù)據(jù)訪問基本技術(shù)284
11.3.1 JDBC數(shù)據(jù)訪問284
11.3.2 Java數(shù)據(jù)庫(kù)連接池288
11.3.3 線程安全的數(shù)據(jù)庫(kù)連接293
11.4 ORM框架介紹294
11.4.1 Java常見的ORM框架294
11.4.2 Hibernate開發(fā)步驟與實(shí)例295
11.5 JPA—Java持久層應(yīng)用接口298
11.5.1 JPA的主要內(nèi)容299
11.5.2 JPA的主要概念和類301
11.5.3 JPA開發(fā)規(guī)范與步驟303
11.5.4 JPA之Hibernate實(shí)現(xiàn)實(shí)例303
11.5.5 JPA之Eclipse Link實(shí)現(xiàn)實(shí)例305
第12章 MyBatis入門310
12.1 MyBatis介紹與快速入門實(shí)例310
12.1.1 MyBatis介紹310
12.1.2 MyBatis快速入門實(shí)例311
12.2 MyBatis核心接口和類314
12.2.1 SqlSession(SQL會(huì)話接口)315
12.2.2 SqlSessionFactory(SQL會(huì)話工廠接口)316
12.2.3 SqlSessionFactoryBuilder(SQL會(huì)話工廠構(gòu)建類)316
12.2.4 Configuration(配置類)317
12.3 MyBatis XML全局配置文件318
12.3.1 配置文件的結(jié)構(gòu)318
12.3.2 環(huán)境配置319
12.3.3 屬性與屬性文件配置321
12.3.4 映射引用配置322
12.3.5 MyBatis特性設(shè)置323
12.4 XML映射文件配置325
12.4.1