疯狂Spring Cloud微服务架构实战+Spring+MyBatis企业应用实战 套装2册pdf下载

疯狂Spring Cloud微服务架构实战+Spring+MyBatis企业应用实战 套装2册百度网盘pdf下载

作者:
简介:疯狂Spring Cloud微服务架构实战+Spring+MyBatis企业应用实战 套装2册
出版社:
出版时间:2017-12
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

编辑推荐

  《疯狂SpringCloud微服务架构实战》
  开源中国创始人@红薯、YY欢聚时代技术经理钟永生等联合背书
  扫图书封面二维码可获得图书配套的讲解视频
  作者自在线的QQ群、微信群不定期答疑服务
  疯狂体系图书的又一力作

  《Spring+MyBatis企业应用实战》
  1.贴近实际项目,以案例驱动
  本书针对每一个知识点都通过相应的程序给出了示范,所有应用范例都密切契合企业开发实际场景,例如用户权限验证、文件上传下载等都是企业开发实际功能,同时采用了目前企业流行、规范的开发架构,严格遵守JavaEE开发规范。读者参考本书的架构,完全可以身临其境地感受企业实际项目开发。
  2.内容深入,讲解细致
  本书的特点是操作步骤详细,编程思路清晰,语言平实易懂。只要读者认真阅读本书,并掌握书中知识,那么就完全可以胜任企业中SpringMVC+MyBatis项目开发的要求。
  3.注释详细
  本书的代码,几乎每行核心语句都有注释,读者可以很容易地了解代码的意图,轻松掌握相应的知识。


内容简介

  《Spring+MyBatis企业应用实战》介绍了JavaEE领域的两个开源框架:Spring的MVC和MyBatis。其中Spring的版本为4.2,MyBatis的版本是3.4。《Spring+MyBatis企业应用实战》的示例建议在Tomcat8上运行。《Spring+MyBatis企业应用实战》重点介绍如何整合SpringMVC4+MyBatis3进行JavaEE开发,主要包括三个部分。部分详细介绍了SpringMVC框架的用法。第二部分详细介绍了MyBatis框架的用法。第三部分重点介绍了SpringMVC4+MyBatis3的整合,并示范开发了一个包含6个表、表之间具有复杂的关联映射关系,且业务功能也相对完善的HRM人事管理系统案例,希望让读者理论联系实际,将这两个框架真正运用到实际开发当中去。该案例采用目前流行、规范的JavaEE架构,整个应用分为DAO持久层、领域对象层、业务逻辑层、控制器层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。所有代码完全基于EclipseIDE来完成,一步步带领读者深入两个框架的核心。阅读《Spring+MyBatis企业应用实战》之前,建议先阅读疯狂软件教育的《疯狂Java讲义》一书。《Spring+MyBatis企业应用实战》适合有较好的Java编程基础,JSP、Servlet、JDBC基础,Spring框架基础的读者,尤其适合于对SpringMVC和MyBatis了解不够深入,或对SpringMVC+MyBatis整合开发不太熟悉的开发人员阅读。

  《疯狂SpringCloud微服务架构实战》以SpringCloud为基础,深入讲解微服务开发的相关框架,包括服务管理框架Eureka、负载均衡框架Ribbon、服务客户端Feign、容错框架Hystrix、消息框架Stream等。除了介绍这些微服务相关的框架外,在《疯狂SpringCloud微服务架构实战》的第11章,还介绍了如何使用SpringData框架操作各个主流数据库(MySQL、MongoDB、Redis)。在第12章,以一个案例为基础结束本书内容,在该章中讲解了模板引擎Thymeleaf,整本书将会为大家提供一整套微服务应用开发的解决方案。本书适合有一定Java开发基础的技术人员,尤其是正在使用或准备使用微服务构建高并发、大数据应用的技术人员及团队。


作者简介

杨恩雄,从事十多年的Java EE企业应用开发,曾任中企动力系统设计师、中企开源项目经理、辰星科技公司项目经理,参与过多个企业级项目的设计与架构工作。曾负责辰星“电影票网络销售系统”的整体架构,精通Activiti、Drools、ESB等开源技术,在SOA、SaaS、大数据应用、互联网系统架构方面有着丰富的经验,曾出版《疯狂Java实战演义》《疯狂工作流讲义》《疯狂Spring Cloud微服务架构实战》等书籍。

目录

第1章 Java EE应用 1
1.1 Java EE应用概述 2
1.1.1 Java EE应用的分层模型 2
1.1.2 Java EE应用的组件 3
1.1.3 Java EE应用的结构和优势 4
1.2 轻量级Java EE应用相关技术 4
1.2.1 JSP、Servlet和JavaBean及替代技术 4
1.2.2 MyBatis3及替代技术 5
1.2.3 Spring4及替代技术 6
1.2.4 使用开源框架的好处 7
1.3 本章小结 7

第2章 Spring MVC简介 8
2.1 MVC思想概述 9
2.1.1 传统Model1和Model2 9
2.1.2 MVC思想及其优势 10
2.2 Struts2和Spring MVC 11
2.3 开发个Spring MVC应用 11
2.3.1 Spring的下载和安装 11
2.3.2 Spring MVC的DispatcherServlet 12
2.3.3 基于Controller接口的控制器 13
示例:个Spring MVC应用 13
示例:基于注解的控制器 17
2.4 详解DispatcherServlet 19
2.5 Spring MVC执行的流程 21
2.5.1 Spring MVC应用的开发步骤 22
2.5.2 Spring MVC执行的流程 23
2.6 本章小结 24

第3章 Spring MVC的常用注解 25
3.1 @Controller注解 26
示例:@Controller注解的使用 26
3.2 @RequestMapping注解 28
3.2.1 @RequestMapping注解 28
3.2.2 请求处理方法可出现的参数类型 30
3.2.3 请求处理方法可返回的类型 31
3.2.4 Model和ModelAndView 31
示例:Model和ModelMap的使用 32
示例:ModelAndView的使用 33
3.3 参数绑定注解 33
3.3.1 @RequestParam注解 33
示例:@RequestMapping和@RequestParam注解的使用 34
3.3.2 @PathVariable注解 38
3.3.3 @RequestHeader注解 38
3.3.4 @CookieValue注解 39
示例:@PathVariable、@RequestHeader和@CookieValue注解的使用 39
3.3.5 @SessionAttributes注解 41
示例:@SessionAttributes注解的使用 41
3.3.6 @ModelAttribute注解 42
示例:@ModelAttribute注解的使用 43
3.4 信息转换 49
3.4.1 HttpMessageConverter<T>接口 49
3.4.2 转换JSON数据 51
示例:接收JSON格式的数据 51
示例:自定义HttpMessageConverter接收JSON格式的数据 55
示例:返回JSON格式的数据 57
示例:自定义HttpMessageConverter返回JSON格式的数据 58
3.4.3 转换XML数据 59
示例:接收XML格式的数据 59
示例:返回XML格式的数据 61
3.5 本章小结 62

第4章 Spring MVC的标签库 64
4.1 表单标签库 65
4.1.1 form标签 65
4.1.2 input标签 66
示例:form和input标签的使用 66
4.1.3 password标签 68
4.1.4 hidden标签 69
4.1.5 textarea标签 69
4.1.6 checkbox标签 70
示例:checkbox标签的使用 70
4.1.7 checkboxes标签 71
示例:checkboxes标签的使用 72
4.1.8 radiobutton标签 76
示例:radiobutton标签的使用 76
4.1.9 radiobuttons标签 77
示例:radiobuttons标签的使用 77
4.1.10 select标签 79
4.1.11 option标签 79
4.1.12 options标签 79
示例:select、option和options标签的使用 80
4.1.13 errors标签 83
示例:errors标签的使用 84
4.2 本章小结 86

第5章 Spring MVC的国际化 87
5.1 Spring MVC国际化的相关知识 88
5.1.1 messageSource 88
5.1.2 localeResolver 88
5.1.3 message标签 89
5.2 AcceptHeaderLocaleResolver国际化 89
示例:基于浏览器请求的国际化实现 89
5.3 SessionLocaleResolver国际化 92
示例:基于HttpSession的国际化实现 93
5.4 CookieLocaleResolver国际化 95
示例:基于Cookie的国际化实现 95
5.5 本章小结 96

第6章 Spring MVC的数据转换、格式化和数据校验 97
6.1 数据绑定流程 98
6.2 数据转换 98
6.2.1 ConversionService 98
6.2.2 Spring支持的转换器 99
示例:使用ConversionService转换数据 100
示例:使用@InitBinder添加自定义编辑器转换数据 103
示例:使用WebBindingInitializer注册全局自定义编辑器转换数据 103
6.2.3 多种转换器的优先顺序 104
6.3 数据格式化 104
示例:使用Formatter格式化数据 105
示例:使用FormatterRegistrar注册Formatter 107
示例:使用AnnotationFormatterFactory<A extends Annotation>格式化数据 108
6.4 数据校验 110
6.4.1 Spring的Validation校验框架 111
示例:测试Spring的Validation校验 112
6.4.2 JSR 303校验 114
示例:测试JSR 303校验 115
6.5 本章小结 120

第7章 Spring MVC的文件上传和下载 121
7.1 文件上传 122
示例:Spring MVC的文件上传 122
示例:使用对象接收上传文件 124
7.2 文件下载 125
示例:Spring MVC的文件下载 125
7.3 拦截器 126
7.3.1 HandlerInterceptor接口 127
示例:拦截器实现用户权限验证 127
7.4 本章小结 131

第8章 MyBatis简介 132
8.1 ORM和MyBatis 133
8.1.1 对象/关系数据库映射(ORM) 133
8.1.2 基本映射方式 134
8.1.3 流行的ORM框架简介 135
8.1.4 MyBatis概述 135
8.2 MyBatis入门 136
8.2.1 MyBatis下载和安装 136
8.2.2 MyBatis的数据库操作 137
8.3 本章小结 142

第9章 MyBatis的基本用法 143
9.1 MyBatis的体系结构 144
9.1.1 SqlSessionFactory 144
9.1.2 SqlSession 144
9.2 深入MyBatis的配置文件 146
9.2.1 MyBatis的配置文件结构 147
9.2.2 properties属性 147
9.2.3 settings设置 148
9.2.4 typeAliases类型命名 150
9.2.5 typeHandlers类型处理器 151
9.2.6 objectFactory对象工厂 152
9.2.7 environments配置环境 152
9.2.8 mapper映射器 154
9.3 深入Mapper XML映射文件 155
9.3.1 select 155
9.3.2 insert、update和delete 157
9.3.3 sql 158
9.3.4 参数(Parameters) 159
示例:测试select、insert、update和delete操作 159
9.3.5 ResultMaps 163
示例:测试ResultMaps 163
9.4 本章小结 169

第10章 MyBatis的关联映射和动态SQL 170
10.1 MyBatis的关联映射 171
10.1.1 一对一 171
示例:OneToOneTest 171
10.1.2 一对多 174
示例:OneToManyTest 174
10.1.3 多对多 179
示例:ManyToManyTest 179
10.2 动态SQL 185
示例:DynamicSQLTest 185
10.2.1 if 186
10.2.2 choose(when、otherwise) 188
10.2.3 where 190
10.2.4 set 191
10.2.5 foreach 192
10.2.6 bind 193
10.3 本章小结 194

第11章 MyBatis的事务管理和缓存机制 195
11.1 MyBatis的事务管理 196
11.1.1 事务的概念 196
11.1.2 Transaction接口 196
11.1.3 事务的配置创建和使用 197
11.2 MyBatis的缓存机制 201
11.2.1 一级缓存(SqlSession级别) 201
示例OneLevelCacheTest 201
11.2.2 二级缓存(mapper级别) 204
示例:TwoLevelCacheTest 204
11.3 本章小结 207

第12章 MyBatis的注解配置 208
12.1 常用Annotation注解 209
12.2 Annotation注解的使用 209
示例:测试select、insert、update和delete操作 210
示例:AOneToOneTest 213
示例:AOneToManyTest 215
示例:AManyToManyTest 216
示例:ADynamicSQLTest 218
12.3 本章小结 224

第13章 Spring4整合MyBatis3 225
13.1 开发环境搭建 226
13.2 准备所需的jar包 226
13.3 准备数据库资源 226
13.4 完成配置文件 227
13.5 持久层功能实现 229
13.6 服务层功能实现 230
13.7 控制层功能实现 232
13.8 jsp页面 233
13.9 测试Spring4整合MyBatis3 234
13.10 本章小结 235

第14章 实战项目:人事管理系统 236
14.1 项目简介及系统结构 237
14.1.1 系统功能介绍 237
14.1.2 相关技术介绍 238
14.1.3 系统结构 238
14.1.4 系统的功能模块 239
14.2 数据表和持久化类 239
14.2.1 设计数据库表 239
14.2.2 设计持久化实体 241
14.2.3 创建持久化实体类 242
14.3 实现DAO持久层 248
14.3.1 公共常量类 249
14.3.2 定义DAO接口 249
14.3.3 部署DAO层 263
14.4 实现Service持久层 264
14.4.1 业务逻辑组件的设计 264
14.4.2 实现业务逻辑组件 264
14.4.3 事务管理 279
14.4.4 部署业务逻辑组件 279
14.5 实现Web层 280
14.5.1 控制器的处理顺序 280
14.5.2 用户管理 283
14.5.3 部门管理 287
14.5.4 职位管理 290
14.5.5 员工管理 292
14.5.6 公告管理 296
14.5.7 下载中心 299
14.6 本章小结 303

附录A EL表达式和JSTL标签库 304

第1章 Spring Cloud概述 1
1.1 传统的应用 2
1.1.1 单体应用 2
1.1.2 架构演进 3
1.1.3 架构要求 4
1.2 微服务与Spring Cloud 5
1.2.1 什么是微服务 5
1.2.2 关于Netflix OSS 6
1.2.3 Spring Cloud与Netflix 6
1.2.4 Spring Cloud的主要模块 6
1.3 学习方面的准备工作 7
1.3.1 下载本书的软件及源码 7
1.3.2 导入本书的案例 7
1.4 本章小结 8


第2章 搭建开发环境 9
2.1 安装与配置Maven 10
2.1.1 关于Maven 10
2.1.2 下载与安装Maven 11
2.1.3 配置远程仓库 11
2.2 安装Eclipse 12
2.2.1 Eclipse版本 12
2.2.2 在Eclipse中配置Maven 12
2.3 Spring Boot 13
2.3.1 Spring Boot简介 13
2.3.2 新建Maven项目 14
2.3.3 编写启动类 15
2.3.4 编写控制器 16
2.3.5 发布REST WebService 17
2.4 Spring Boot配置文件 18
2.4.1 默认配置文件 18
2.4.2 指定配置文件位置 19
2.4.3 yml文件 19
2.4.4 运行时指定profiles配置 20
2.4.5 热部署 20
2.5 Spring Cloud的版本 21
2.6 本章小结 21


第3章 微服务发布与调用 22
3.1 Eureka介绍 23
3.1.1 关于Eureka 23
3.1.2 Eureka架构 23
3.1.3 服务器端 24
3.1.4 服务提供者 24
3.1.5 服务调用者 24
3.2 个Eureka应用 24
3.2.1 构建服务器 24
3.2.2 服务器注册开关 27
3.2.3 编写服务提供者 27
3.2.4 编写服务调用者 29
3.2.5 程序结构 32
3.3 Eureka集群搭建 33
3.3.1 本例集群结构图 33
3.3.2 改造服务器端 34
3.3.3 改造服务提供者 35
3.3.4 改造服务调用者 37
3.3.5 编写REST客户端进行测试 37
3.4 服务实例的健康自检 38
3.4.1 程序结构 39
3.4.2 使用Spring Boot Actuator 39
3.4.3 实现应用健康自检 39
3.4.4 服务查询 42
3.5 Eureka的常用配置 44
3.5.1 心跳检测配置 44
3.5.2 注册表抓取间隔 44
3.5.3 配置与使用元数据 45
3.5.4 自我保护模式 45
3.6 本章小结 46


第4章 负载均衡 47
4.1 Ribbon介绍 48
4.1.1 Ribbon简介 48
4.1.2 Ribbon子模块 48
4.1.3 负载均衡器组件 48
4.2 个Ribbon程序 49
4.2.1 编写服务 49
4.2.2 编写请求客户端 51
4.2.3 Ribbon的配置 52
4.3 Ribbon的负载均衡机制 53
4.3.1 负载均衡器 53
4.3.2 自定义负载规则 54
4.3.3 Ribbon自带的负载规则 56
4.3.4 Ping机制 57
4.3.5 自定义Ping 59
4.3.6 其他配置 59
4.4 在Spring Cloud中使用Ribbon 60
4.4.1 准备工作 60
4.4.2 使用代码配置Ribbon 61
4.4.3 使用配置文件设置Ribbon 63
4.4.4 Spring使用Ribbon的API 64
4.5 RestTemplate负载均衡 66
4.5.1 @LoadBalanced注解概述 66
4.5.2 编写自定义注解以及拦截器 66
4.5.3 使用自定义拦截器以及注解 68
4.5.4 在控制器中使用RestTemplate 69
4.6 本章小结 71


第5章 REST客户端Feign 72
5.1 REST客户端 73
5.1.1 使用CXF调用REST服务 73
5.1.2 使用Restlet调用REST服务 74
5.1.3 Feign框架介绍 75
5.1.4 个Feign程序 76
5.1.5 请求参数与返回对象 77
5.2 使用Feign 78
5.2.1 编码器 79
5.2.2 解码器 80
5.2.3 XML的编码与解码 80
5.2.4 自定义编码器与解码器 83
5.2.5 自定义Feign客户端 83
5.2.6 使用第三方注解 85
5.2.7 Feign解析第三方注解 86
5.2.8 请求拦截器 89
5.2.9 接口日志 89
5.3 在Spring Cloud中使用Feign 90
5.3.1 Spring Cloud整合Feign 91
5.3.2 Feign负载均衡 93
5.3.3 默认配置 93
5.3.4 自定义配置 94
5.3.5 可选配置 97
5.3.6 压缩配置 98
5.4 本章小结 98


第6章 Spring Cloud的保护机制 99
6.1 概述 100
6.1.1 实际问题 100
6.1.2 传统的解决方式 101
6.1.3 集群容错框架Hystrix 101
6.1.4 Hystrix的功能 102
6.2 个Hystrix程序 103
6.2.1 准备工作 103
6.2.2 客户端使用Hystrix 103
6.2.3 调用错误服务 105
6.2.4 Hystrix的运作流程 106
6.3 Hystrix的使用 108
6.3.1 命令执行 108
6.3.2 属性配置 110
6.3.3 回退 111
6.3.4 回退的模式 112
6.3.5 断路器开启 113
6.3.6 断路器关闭 116
6.3.7 隔离机制 118
6.3.8 合并请求 121
6.3.9 请求缓存 125
6.4 在Spring Cloud中使用Hystrix 127
6.4.1 整合Hystrix 128
6.4.2 命令配置 130
6.4.3 默认配置 131
6.4.4 缓存注解 132
6.4.5 合并请求注解 134
6.4.6 Feign与Hystrix整合 136
6.4.7 Hystrix监控 140
6.5 本章小结 142


第7章 微服务集群网关 143
7.1 Zuul框架介绍 144
7.1.1 关于Zuul 144
7.1.2 Zuul的功能 144
7.2 在Web项目中使用Zuul 145
7.2.1 Web项目整合Zuul 145
7.2.2 测试路由功能 145
7.2.3 过滤器运行机制 147
7.3 在微服务集群中初试Zuul 148
7.3.1 集群搭建 149
7.3.2 路由到集群服务 150
7.3.3 Zuul Http客户端 153
7.4 路由配置 153
7.4.1 简单路由 154
7.4.2 跳转路由 155
7.4.3 Ribbon路由 155
7.4.4 自定义路由规则 156
7.4.5 忽略路由 157
7.5 Zuul的其他配置 157
7.5.1 请求头配置 157
7.5.2 路由端点 158
7.5.3 Zuul与Hystrix 158
7.5.4 在Zuul中预加载Ribbon 161
7.6 Zuul功能进阶 161
7.6.1 过滤器优先级 161
7.6.2 自定义过滤器 162
7.6.3 动态加载过滤器 163
7.6.4 禁用过滤器 165
7.6.5 请求上下文 166
7.6.6 @EnableZuulServer注解 168
7.6.7 error过滤器 169
7.6.8 动态路由 171
7.7 本章小结 172


第8章 微服务与消息驱动 173
8.1 Spring Cloud Stream介绍 174
8.1.1 关于Stream框架 174
8.1.2 Stream框架的组成部分 174
8.1.3 消息代理中间件 174
8.2 RabbitMQ框架 175
8.2.1 RabbitMQ和AMQP 175
8.2.2 下载与运行 176
8.2.3 编写生产者 177
8.2.4 编写消费者 179
8.2.5 交换器、绑定与队列 180
8.3 Apache Kafka框架 181
8.3.1 关于Kafka 181
8.3.2 运行Kafka服务器 182
8.3.3 编写生产者 182
8.3.4 编写消费者 184
8.3.5 消费者组 185
8.4 开发消息微服务 185
8.4.1 准备工作 186
8.4.2 编写生产者 187
8.4.3 编写消费者 188
8.4.4 更换绑定器 189
8.4.5 Sink、Source与Processor 190
8.4.6 消费者组 191
8.5 本章小结 192


第9章 集群配置中心 193
9.1 概述 194
9.1.1 关于Spring Cloud Config 194
9.1.2 应用结构 195
9.1.3 引导程序简介 195
9.1.4 搭建SVN环境 196
9.2 构建个例子 196
9.2.1 创建服务器 196
9.2.2 配置SVN仓库 197
9.2.3 创建客户端 199
9.2.4 从客户端读取SVN配置 200
9.2.5 目录配置总结 201
9.2.6 刷新配置 202
9.2.7 刷新Bean 203
9.3 配置的加密和解密 205
9.3.1 为服务器安装JCE 205
9.3.2 加密和解密端点 205
9.3.3 SVN存储加密数据 206
9.3.4 非对称加密 207
9.4 其他配置 207
9.4.1 服务器健康指示器 207
9.4.2 客户端的错误提前与重试机制 208
9.4.3 安全配置 209
9.4.4 访问服务器配置 210
9.5 整合使用 210
9.5.1 准备工作 210
9.5.2 配置服务器、客户端整合Eureka 212
9.5.3 整合Zuul 214
9.5.4 整合Spring Cloud Bus刷新配置 216
9.5.5 刷新单个节点配置 217
9.6 本章小结 217


第10章 微服务跟踪 219
10.1 概述 220
10.1.1 实际问题与Sleuth 220
10.1.2 服务跟踪系统 220
10.1.3 Sleuth的基本概念 220
10.1.4 项目准备 221
10.2 Sleuth整合Zipkin 222
10.2.1 Zipkin简介 222
10.2.2 构建Zipkin服务器项目 223
10.2.3 配置微服务 224
10.2.4 查看数据 225
10.2.5 使用MySQL保存数据 228
10.2.6 使用消息采集数据 230
10.3 Sleuth整合ELK 232
10.3.1 关于ELK 232
10.3.2 下载ELK 233
10.3.3 运行Elasticsearch 233
10.3.4 使用Logstash读取JSON 234
10.3.5 使用Kibana展示数据 235
10.3.6 使用Logback转换JSON 237
10.4 本章小结 240


第11章 微服务数据库实战 241
11.1 概述 242
11.1.1 关于Spring Data 242
11.1.2 Spring Data的功能 243
11.1.3 Spring Data的模块 243
11.2 Spring Data与JPA 243
11.2.1 构建项目 244
11.2.2 数据访问层与业务层 245
11.2.3 自定义数据存储逻辑 247
11.2.4 方法名查询 248
11.2.5 使用@Query注解 249
11.3 Spring Data与MongoDB 250
11.3.1 安装MongoDB 250
11.3.2 配置权限 251
11.3.3 MongoDB的概念 252
11.3.4 构建项目 252
11.3.5 数据访问层与业务层 253
11.3.6 自定义数据存储逻辑 254
11.3.7 方法名查询 256
11.3.8 使用@Query注解 258
11.4 Spring Data与Redis 258
11.4.1 Redis的安装与配置 258
11.4.2 Redis的数据类型 259
11.4.3 使用Jedis 260
11.4.4 构建Spring Data项目 262
11.4.5 数据访问层与业务层 263
11.4.6 自定义数据存储逻辑 265
11.4.7 方法名查询 267
11.5 本章小结 268


第12章 案例实战 269
12.1 概述 270
12.1.1 表现层技术 270
12.1.2 案例概述 270
12.1.3 案例技术选型 270
12.2 Spring Boot与JSP 271
12.2.1 构建项目 271
12.2.2 配置 272
12.2.3 打包部署 273
12.3 模板引擎Thymeleaf 274
12.3.1 关于Thymeleaf 274
12.3.2 Spring Boot整合Thymeleaf 274
12.3.3 加载资源 275
12.3.4 获取请求数据 276
12.3.5 调用Bean方法 276
12.3.6 遍历集合 277
12.3.7 表单提交 277
12.4 图书管理案例 278
12.4.1 运行案例 278
12.4.2 案例模块 279
12.4.3 案例架构 279
12.4.4 数据库 280
12.4.5 用户登录 280
12.4.6 新建图书 284
12.4.7 图书展示 286
12.5 本章小结 287

^_^:8a72c676bcac4326c085839187456fdf