Spring+Spring MVC+MyBatis整合开发实战

作者
陈学明
丛书名
出版社
机械工业出版社
ISBN
9787111658788
简要
系统介绍SSM整合开发,详解500多个知识点示例、1个完整的项目实战案例,即学即用。
简介
内容简介书籍计算机书籍 本书从实战入手,通过大量示例介绍了Spring+SpringMVC+MyBatis整合开发的相关内容,提升读者对框架的掌握度和理解度,从而实现对框架会用、用对及精用的目标。本书共18章,分为5篇。第1篇Spring核心框架,涵盖Spring概述、Spring IoC容器初探、Web项目环境搭建与项目创建、Spring IoC容器进阶、基于注解和代码的配置、Spring测试;第2篇Spring MVC框架,涵盖Spring Web MVC概述、数据类型转换、验证与异常处理,以及Spring MVC进阶和测试框架;第3篇数据技术,涵盖数据库与Java数据访问技术、MyBatis基本使用、MyBatis进阶、Spring数据访问与事务管理;第4篇SSM整合开发,涵盖SSM整合概述与SSM整合实例;第5篇高级开发技术,涵盖Spring AOP与MVC拦截器,以及Spring Security框架与多线程。本书适合具备Java基础的SSM初学者和进阶开发人员阅读,也适合Java Web开发工程师阅读;对于探究Spring及Spring Boot框架机制与原理的资深工程师也具有参考意义。
目录
前言
第1篇 Spring核心框架
第1章 Spring概述 2
1.1 Spring的由来与发展 2
1.1.1 Java简史 3
1.1.2 Spring编年简史 5
1.2 Spring的概念及理念 6
1.3 Spring框架体系结构 7
1.4 Spring生态圈 10
1.5 Spring资源与社区 12
1.6 Spring综述 13
第2章 Spring IoC容器初探 14
2.1 Spring IoC容器及相关概念 14
2.1.1 组件、框架和容器 14
2.1.2 JavaBean、POJO和EJB简介 16
2.1.3 IoC与DI简介 17
2.1.4 Spring与EJB简介 19
2.2 Spring容器初始化 20
2.2.1 BeanFactory与ApplicationContext 20
2.2.2 ApplicationContext初始化方式 21
2.2.3 Spring基于XML的配置文件结构 23
2.2.4 Bean的配置方式 24
2.2.5 哪些类需要配置成Bean 25
2.2.6 容器的关闭 25
2.2.7 Spring容器的定义 26
2.3 依赖注入与方式 26
2.3.1 构造函数注入 27
2.3.2 设置值注入 28  
第3章 Web项目环境搭建与项目创建 30
3.1 环境与前置准备 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建立项目 36
3.2.1 在Eclipse中创建Maven Web项目 37
3.2.2 将Maven创建的Web项目导入Eclipse中 38
3.2.3 Eclipse编译器和项目特性修改 39
3.3 Spring框架导入与项目 41
3.3.1 Spring核心包及相关依赖包的导入 41
3.3.2 项目结构及创建 42
3.4 简单的完整实例 43
第4章 Spring IoC容器进阶 46
4.1 Bean实例化的更多方式 46
4.1.1 静态内部类 46
4.1.2 静态工厂方法 47
4.1.3 实例工厂方法 47
4.2 Bean的配置属性 48
4.2.1 Bean的作用域配置 49
4.2.2 Bean初始化或销毁的生命周期回调 50
4.2.3 懒加载Bean 51
4.2.4 Bean定义的继承 52
4.3 依赖注入的配置 53
4.3.1 多个对象的依赖注入 53
4.3.2 简单类型的依赖注入 55
4.3.3 集合类型的依赖注入 58
4.3.4 内部Bean的依赖注入 59
4.3.5 Bean方法的替换 59
4.3.6 自动装配 60
4.4 特殊的依赖配置 61
4.4.1 depends-on前置依赖配置 61
4.4.2 方法注入—不同作用域Bean的依赖配置 62
4.4.3 循环依赖的解决 63
4.5 XML配置进阶 64
4.5.1 依赖注入配置的简写 64
4.5.2 多XML配置文件 64
4.6 容器与Bean扩展点 65
4.6.1 全局与容器生命周期回调 65
4.6.2 容器加载定义扩展—BeanFactoryPostProcessor 66
4.6.3 容器扩展点—BeanPostProcessor 68
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注解标准 75
5.2 Spring支持的注解类型与开启方式 76
5.2.1 Spring支持的注解类型 76
5.2.2 Spring注解功能的开启方式 77
5.3 Spring支持的Java标准注解 78
5.3.1 @PostConstruct和@PreDestroy 78
5.3.2 @Named—组件注解 78
5.3.3 @Resource—依赖注入注解 79
5.3.4 @Inject—依赖注入 79
5.4 Spring容器配置注解 80
5.4.1 @Required—依赖项检查 80
5.4.2 @Autowired—依赖对象的自动装配 81
5.4.3 @Component—组件注解 82
5.4.4 @Bean—方法层级的组件注解 85
5.5 自动装配的更多介绍 86
5.5.1 自动装配的required配置 86
5.5.2 自动装配的顺序和选择 86
5.5.3 自动装配的使用 89
5.6 基于Java代码的配置 89
5.6.1 @Configuration——配置类注解 90
5.6.2 Java代码配置的容器初始化 90
5.6.3 @ComponentScan—组件扫描注解 91
5.6.4 @Import—配置类导入注解 92
5.7 容器注解汇总 92
第6章 Spring测试 94
6.1 关于测试 94
6.1.1 单元测试 95
6.1.2 集成测试 97
6.1.3 测试的一些概念 97
6.2 Java测试框架 98
6.2.1 JUnit单元测试框架 98
6.2.2 JUnit批量测试 102
6.2.3 JUnit运行器 103
6.2.4 JUnit 4与JUnit 5的比较 104
6.2.5 TestNG简介及与JUnit的比较 105
6.3 基于Spring的测试 106
6.3.1 JUnit中加入Spring容器进行测试 106
6.3.2 Spring测试模块 108
6.3.3 Spring测试模块对单元测试的支持 109
6.3.4 Spring测试框架 111
6.4 Spring测试注解 116
6.4.1 Spring测试专用的注解 116
6.4.2 测试支持的标准注解 119
6.4.3 基于JUnit 4支持的注解 121
6.4.4 基于JUnit Jupiter(JUnit 5)支持的注解 123
6.5 测试框架注解汇总 125
第2篇 Spring MVC框架
第7章 Spring Web MVC概述 128
7.1 HTTP Web基础知识 128
7.1.1 HTML与HTTP 128
7.1.2 HTTP请求类型 129
7.1.3 MIME类型 129
7.1.4 状态码 130
7.2 Java Web开发 131
7.2.1 Servlet技术 131
7.2.2 JSP技术 138
7.2.3 MVC模式 141
7.3 Spring MVC介绍与实例 141
7.3.1 Spring MVC框架处理流程 142
7.3.2 Spring Web快速Demo实例 143
7.4 Spring MVC技术细节 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 请求映射与参数注解 156
7.5.3 @ModelAttribute模型属性注解 160
7.6 基于代码配置的Spring MVC项目 162
7.6.1 Java代码进行Spring MVC的容器配置 162
7.6.2 Java代码替代web.xml文件的入口配置 163
7.7 MVC注解汇总 164
第8章 数据类型的转换、验证与异常处理 166
8.1 类型转换 166
8.1.1 属性编辑器:PropertyEditor 166
8.1.2 转换器服务:ConversionService 168
8.1.3 类型转换在容器中的使用 173
8.2 数据绑定 176
8.2.1 Bean封装器:BeanWrapper 176
8.2.2 数据绑定器:DataBinder与WebDataBinder 178
8.2.3 绑定器初始化注解:@InitBinder 180
8.2.4 HTTP消息转换器:HttpMessageConverter 181
8.3 数据验证 184
8.3.1 JavaBean标准校验 184
8.3.2 Spring核心容器的验证 186
8.3.3 Spring MVC容器的验证 188
8.3.4 验证器配置及增加自定义验证器 189
8.3.5 验证器使用层级及手动调用 191
8.4 Spring MVC异常处理 192
8.4.1 Controller类层级异常处理:@ExceptionHandler 192
8.4.2 全局的异常处理:@ControllerAdvice 193
8.4.3 XML配置异常处理 194
第9章 Spring MVC进阶 195
9.1 静态资源的放行 195
9.1.1 配置Servlet处理静态资源 196
9.1.2 配置放行动态资源 196
9.1.3 配置放行动态资源 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与JSON 204
9.3.1 JSON介绍 204
9.3.2 Java对JSON的支持 206
9.3.3 Spring MVC使用JSON 210
9.4 Spring MVC与REST 214
9.4.1 REST的概念与应用 214
9.4.2 Spring MVC REST服务端:@RestController 218
9.4.3 Spring MVC REST客户端:RestTemplate 219
9.5 文件上传 223
9.5.1 多部分表单数据类型:multipart/form-data 223
9.5.2 Java文件上传功能实现方式 225
9.5.3 Spring MVC 文件上传功能的实现方式 228
9.5.4 Spring MVC文件上传最佳实践 231
9.6 国际化 233
9.6.1 Java国际化 233
9.6.2 Spring国际化 236
9.6.3 Spring MVC国际化 237
9.6.4 语言环境解析器:LocaleResolver 239
9.6.5 Spring MVC语言环境的动态修改 244
9.6.6 Spring MVC国际化的使用 245
第10章 Spring MVC测试框架 247
10.1 Spring MVC测试概述 247
10.1.1 Spring MVC的测试方式 247
10.1.2 Spring Web测试实例与测试的整体框架 248
10.2 模拟应用服务(MockMvc)及其构建器 251
10.2.1 独立测试MockMvc构建器:StandaloneMockMvcBuilder 251
10.2.2 集成测试MockMvc构建器:DefaultMockMvcBuilder 252
10.3 模拟请求构造器 254
10.3.1 模拟请求参数传递 255
10.3.2 模拟请求构造器的请求相关设置 257
10.4 结果操作 258
10.4.1 结果操作接口:ResultActions 259
10.4.2 结果匹配器接口:ResultMatcher 260
10.4.3 结果处理器:MockMvcResultHandlers 265
10.4.4 获取MvcResult后自定义验证 266
10.5 Spring MVC测试框架之其他 266
10.5.1 测试代码简写 267
10.5.2 独立测试的依赖处理 268
10.5.3 文件上传测试 268
第3篇 数据技术
第11章 数据库与Java数据访问技术 272
11.1 关系型数据库介绍 272
11.1.1 关系型数据库产品 272
11.1.2 关系型数据库及其对象 273
11.1.3 关系型数据库事务 274
11.1.4 SQL语言 276
11.2 MySQL数据库 276
11.2.1 MySQL数据类型 277
11.2.2 基于MySQL的基本SQL语句 279
11.2.3 MySQL高级对象与功能 281
11.3 Java数据访问基本技术 284
11.3.1 JDBC数据访问 284
11.3.2 Java数据库连接池 288
11.3.3 线程安全的数据库连接 293
11.4 ORM框架介绍 294
11.4.1 Java常见的ORM框架 294
11.4.2 Hibernate开发步骤与实例 295
11.5 JPA—Java持久层应用接口 298
11.5.1 JPA的主要内容 299
11.5.2 JPA的主要概念和类 301
11.5.3 JPA开发规范与步骤 303
11.5.4 JPA之Hibernate实现实例 303
11.5.5 JPA之Eclipse Link实现实例 305
第12章 MyBatis入门 310
12.1 MyBatis介绍与快速入门实例 310
12.1.1 MyBatis介绍 310
12.1.2 MyBatis快速入门实例 311
12.2 MyBatis核心接口和类 314
12.2.1 SqlSession(SQL会话接口) 315
12.2.2 SqlSessionFactory(SQL会话工厂接口) 316
12.2.3 SqlSessionFactoryBuilder(SQL会话工厂构建类) 316
12.2.4 Configuration(配置类) 317
12.3 MyBatis XML全局配置文件 318
12.3.1 配置文件的结构 318
12.3.2 环境配置 319
12.3.3 属性与属性文件配置 321
12.3.4 映射引用配置 322
12.3.5 MyBatis特性设置 323
12.4 XML映射文件配置 325
12.4.1 基本查询映射配置 326
12.4.2 嵌套映射 330
12.4.3 、和语句配置 336
12.4.4 可重用SQL代码段() 338
第13章 MyBatis进阶 339
13.1 MyBatis内部运作解密 339
13.1.1 SqlSessionFactory的构建和类型 340
13.1.2 会话工厂创建会话的流程 340
13.1.3 Mapper映射器接口的运作方式 341
13.1.4 SqlSession和Executor如何执行SQL语句 342
13.2 MyBatis全局配置进阶 343
13.2.1 类型处理器 343
13.2.2 类型别名 345
13.2.3 对象工厂 346
13.2.4 插件 346
13.2.5 数据库提供商配置 347
13.3 动态SQL 348
13.3.1 条件判断 和条件语句 348
13.3.2 多分支选择标签、和 349
13.3.3 循环标签 349
13.4 MyBatis日志 350
13.4.1 Commons Logging +Log4j2搭建MyBatis日志方案实例 351
13.4.2 日志开启层级 352
13.5 MyBatis缓存 353
13.5.1 一级缓存 354
13.5.2 二级缓存 356
13.5.3 缓存补充介绍 359
13.6 MyBatis其他 360
13.6.1 基于注解映射及SQL语句构造器 360
13.6.2 Oracle自增长主键解决:selectKey 361
13.6.3 使用C3P0连接池 363
第14章 Spring数据访问与事务管理 364
14.1 Spring JDBC模板类 364
14.1.1 JdbcTemplate的使用 364
14.1.2 JdbcTemplate使用连接池数据源 366
14.2 Spring DAO支持 368
14.2.1 DAO的概念 368
14.2.2 基于JdbcTemplate的DAO层实例 369
14.2.3 Spring DAO支持类:DaoSupport 371
14.3 Spring整合ORM框架及JPA 372
14.3.1 Spring与Hibernate的整合概览 373
14.3.2 Spring与JPA的整合概览 374
14.4 Spring事务处理 375
14.4.1 Java事务处理 375
14.4.2 Spring事务管理 377
14.4.3 基于数据源事务管理器的编程式事务 380
14.4.4 基于数据源事务管理器的声明式事务 385
14.4.5 Spring MVC事务处理其他 390
第4篇 SSM整合开发
第15章 SSM整合概述 396
15.1 SSM整合综述 396
15.1.1 开发架构选择 396
15.1.2 SSM整合技术选型与导入 398
15.1.3 集成开发平台与开发工具 403
15.1.4 配置开发与注解开发 409
15.2 Spring与Spring MVC整合 410
15.2.1 配置Spring MVC父子容器 410
15.2.2 核心容器配置application.xml 411
15.2.3 Spring MVC容器配置spring-mvc.xml 412
15.3 Spring与MyBatis整合 414
15.3.1 整合的主要组件类 414
15.3.2 SSM整合方式 415
15.3.3 映射器配置 417
15.3.4 Spring与MyBatis整合事务管理 418
15.4 SSM异常整合与处理 421
15.4.1 Spring MVC异常处理的接口和类 422
15.4.2 Spring MVC异常处理器配置 425
15.4.3 JSON类型返回的异常处理器 428
15.5 Java日志与SSM日志整合 430
15.5.1 Log4j和Log4j2 430
15.5.2 Log4j2使用介绍 433
15.5.3 Log4j与JCL整合 436
15.5.4 SSM日志整合 438
第16章 SSM整合实例 442
16.1 项目需求、系统架构与系统设计 442
16.1.1 项目需求 442
16.1.2 系统架构 443
16.1.3 系统设计 446
16.2 项目框架搭建(SSM+Ext JS) 447
16.2.1 Eclipse+Maven创建多模块项目 447
16.2.2 后端项目(daport-backend)依赖和配置 455
16.2.3 前端项目(daport-front)搭建 464
16.2.4 前后端整合思路及开发方式 468
16.3 daport-backend后端开发 471
16.3.1 使用ERMaster设计表并产生SQL 471
16.3.2 MyBatis Generator产生实体类、映射接口及映射配置文件 473
16.3.3 用户请求服务与开发 474
16.4 daport-frontend前端开发 478
16.4.1 前端项目 478
16.4.2 主页面开发 478
16.4.3 用户管理页面开发 482
16.5 前后端整合开发 486
16.5.1 系统登录 486
16.5.2 国际化 488
16.5.3 用户管理前后端的整合 490
16.5.4 文件上传 491
16.5.5 统一异常处理 493
16.6 测试、调试与部署 494
16.6.1 后端daport-backend代码测试 494
16.6.2 后端daport-backend调试 496
16.6.3 前端daport-frontend调试 498
第5篇 高级开发技术
第17章 Spring AOP与MVC拦截器 502
17.1 AOP介绍及Java代理 502
17.1.1 AOP的应用场景及基本概念 503
17.1.2 Java代理实现 504
17.1.3 CGLIB动态代理库 507
17.2 Java AOP框架—AspectJ 509
17.2.1 使用Eclipse AJDT开发AspectJ实例 509
17.2.2 AspectJ切点执行表达式 510
17.2.3 AspectJ注解开发 511
17.3 Spring AOP框架解密 512
17.3.1 Spring AOP框架及代理实现 512
17.3.2 代理工厂Bean:ProxyFactoryBean 515
17.3.3 增强器:Advisor 517
17.3.4 基于XML的AOP配置 520
17.3.5 基于注解的AOP配置 522
17.3.6 Spring AOP与AspectJ的关系 524
17.4 MVC拦截器与过滤器 524
17.4.1 Spring MVC拦截器 524
17.4.2 Servlet 过滤器与Spring实现的过滤器 526
17.4.3 过滤器与拦截器的关系 529
第18章 Spring Security框架与多线程 531
18.1 Spring Security概述与Web请求认证 531
18.1.1 Spring Security快速入门示例 531
18.1.2 Spring Security用户认证配置标签 534
18.1.3 Spring Security密码加密 537
18.2 Spring Security方法层级授权 538
18.2.1 单个Bean方法保护的配置 538
18.2.2 方法的安全注解 539
18.2.3 全局安全切点配置 541
18.3 Spring Security机制解密 541
18.3.1 Spring Security实现机制 541
18.3.2 AuthenticationManager(认证管理器)核心接口及运作原理 542
18.3.3 AccessDecisionManager(访问决策管理器) 544
18.3.4 SecurityMetadataSource(安全元数据源) 545
18.3.5 SecurityInterceptor(安全拦截器) 546
18.4 Spring Security代码配置与测试 548
18.4.1 Spring Security基于代码配置 549
18.4.2 Spring Security单元测试 551
18.5 Spring Security实战 554
18.5.1 自定义登录页面 554
18.5.2 常见错误及解决方法 555
18.6 多线程与线程安全 556
18.6.1 Java线程创建与执行 557
18.6.2 Java线程安全问题 558
18.6.3 共享变量的线程安全解决方式 559
18.6.4 ThreadLocal解决线程安全 561
18.6.5 Spring中ThreadLocal的使用 563




有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4