新書推薦:
《
算法图解(第2版)
》
售價:NT$
356.0
《
科学的奇幻之旅
》
售價:NT$
352.0
《
画艺循谱:晚明的画谱与消闲
》
售價:NT$
653.0
《
新民说·现实政治史:从马基雅维利到基辛格
》
售價:NT$
454.0
《
宽容是件奢侈品(人生360度·一分钟经典故事)
》
售價:NT$
203.0
《
甲骨拼合六集
》
售價:NT$
1520.0
《
视觉美食家:商业摄影实战与创意解析
》
售價:NT$
602.0
《
中国经济发展的新阶段:机会与选择
》
售價:NT$
454.0
|
編輯推薦: |
本书具有如下特色:? 由浅入深,循序渐进。本书以入门读者为对象,先从语言基础学起,再学习语言的核心技术,然后学习高 级应用,*后学习开发一个完整项目。讲解过程中步骤详尽,版式新颖,使读者在阅读时一目了然,从而快速掌握书中内容。? 语音视频,讲解详尽。书中每一章节均提供声图并茂的教学视频,读者可以扫描书中对应的二维码随时随地学习。这些视频能够引导初学者快速入门,感受编程的快乐和成就感,增强进一步学习的信心,从而快速成为编程高手。? 实例典型,轻松易学。通过例子学习是好的学习方式,本书通过“一个知识点、一个例子、一个结果、一段评析、一个综合应用”的模式,透彻详尽地讲述了实际开发中所需的各类知识。另外,为了便于读者阅读程序代码,快速学习编程技能,书中几乎每行代码都提供了注释。 ? 精彩栏目,贴心提醒。本书根据需要在各章安排了很多“注意”“说明”“技巧”等小栏目,让读者可以在学习过程中更轻松地理解相关知识点及概念,更快地掌握个别技术的应用技巧。? 附赠资源,优质服务。除配套视频和源程序外,本书还赠送相关资源库、题库,同时为读者提供社区技术支持、QQ在线答疑等学习服务,收获更好的学习体验。
|
內容簡介: |
本书从零基础读者的角度出发,通过通俗易懂的语言、丰富多彩的实例,循序渐进地让读者在实践中学习Spring Boot框架的用法。全书共分为3篇15章,内容包括环境搭建,Spring Boot基础,配置项目,Controller控制器,请求的过滤、拦截与监听,Service服务,日志组件,单元测试,异常处理,模板引擎,JSON解析器,WebSocket长连接,上传与下载,MyBatis和Redis等。书中先介绍基本概念和基础语法,再讲解代码位置、参数说明,最后将代码整合到项目中并演示运行效果;讲解过程给出详细说明与注释,降低读者学习难度。同时,本书配套了大量教学视频,扫码即可观看,还提供所有程序源文件,方便读者实践。本书适合Spring Boot初学者及已学完Java基础、Java Servlet基础和HTML基础的读者自学使用,也可用作高等院校相关专业的教材及参考书。
|
目錄:
|
第1篇 基础知识篇
第1章 环境搭建 2
1.1 安装Java运行环境——JDK 3
1.1.1 下载Open JDK 3
1.1.2 安装与配置 4
1.2 安装项目构建工具——Maven 6
1.2.1 下载压缩包 6
1.2.2 修改JAR文件的存放位置 7
1.2.3 添加阿里云中央仓库镜像 8
1.3 安装集成开发环境——Eclipse 9
1.3.1 下载与安装 9
1.3.2 启动 11
1.3.3 配置Java运行环境 12
1.3.4 配置Maven环境 14
1.4 接口测试工具——Postman 16
1.5 编写第一个Spring Boot程序 18
1.5.1 在Spring官网生成初始项目文件 18
1.5.2 Eclipse导入Spring Boot项目 21
1.5.3 编写简单的跳转功能 23
1.5.4 打包项目 25
1.6 为Eclipse安装Spring插件(可选) 26
1.6.1 安装插件的步骤 27
1.6.2 快速创建Spring Boot项目 28
本章知识思维导图 31
第2章 Spring Boot基础 32
2.1 Spring Boot简介 33
2.1.1 为什么用Spring Boot? 33
2.1.2 Spring Boot的特点 33
2.2 常用注解 34
2.3 启动类 35
2.4 命名规范 36
2.4.1 包的命名 36
2.4.2 Java文件的命名 39
2.5 理解注入 41
2.5.1 一个简单的注入例子 41
[实例01] 将用户名注册成Bean 41
2.5.2 注册Bean 43
[实例02] 李四的名字必须通过别名注入 44
[实例03] 指定People对象初始化方法和销毁方法 46
2.5.3 获取Bean 48
2.6 为项目添加依赖 50
2.6.1 修改pom.xml配置文件 50
2.6.2 如何查找依赖的版本号 53
本章知识思维导图 54
第3章 配置项目 55
3.1 配置文件 56
3.1.1 properties和yml 56
3.1.2 常用配置 59
3.2 读取配置项的值 60
3.2.1 使用@Value注解注入 60
[实例01] 读取配置文件中记录的学生信息 60
3.2.2 使用Environment环境组件 61
[实例02] 读取配置文件中个人的简历信息 62
3.2.3 创建配置文件的映射对象 63
[实例03] 将配置文件中的信息封装成学生对象 66
3.3 同时拥有多个配置文件 69
3.3.1 加载多个配置文件 69
[实例04] 读取自定义配置文件中的静态数据 70
3.3.2 切换多环境配置文件 72
[实例05] 创建生产和测试两套环境的配置文件,切换两套环境后启动项目 73
3.4 @Configuration配置类 74
[实例06] 自定义项目的错误页面 75
本章知识思维导图 77
第4章 Controller控制器 78
4.1 映射HTTP请求 79
4.1.1 @Controlle/ 79
4.1.2 @RequestMapping 79
[实例01] 访问指定地址进入主页 79
[实例02] 访问多个地址进入同一主页 80
[实例03] 根据请求类型显示不同的页面 82
[实例04] 用户发送的请求必须包含name参数和id参数 83
[实例05] 获取用户客户端Cookie中的Session id,判断用户是否为自动登录 85
[实例06] 要求用户发送的数据必须是JSON格式 86
[实例07] 为电商平台设置上层地址 89
4.1.3 @ResponseBody 89
4.1.4 @RestControlle/ 91
4.1.5 重定向 91
[实例08] 将请求重定向为百度首页(方法一) 91
[实例09] 将请求重定向为百度首页(方法二) 92
4.2 传递参数 93
4.2.1 自动识别请求的参数 93
[实例10] 验证用户发送的账号、密码是否正确 93
4.2.2 @RequestParam 95
[实例11] 获取用户发送的token口令 95
[实例12] 如果用户没有发送用户名,则用“游客”称呼用户 97
4.2.3 @RequestBody 97
[实例13] 将前端发送的JSON数据封装成People类对象 98
4.2.4 获取Servlet的内置对象 99
[实例14] 服务器返回图片 100
4.3 RESTful风格及传参方式 101
4.3.1 什么是RESTful风格? 101
4.3.2 动态URL地址 102
[实例15] 使用RESTful风格对用户信息进行查、改、删 103
本章知识思维导图 107
第5章 请求的过滤、拦截与监听 108
5.1 过滤器 109
5.1.1 通过配置类注册 109
[实例01] 用过滤器检查用户是否登录 110
[实例02] 让同一个请求经过三个过滤器 111
5.1.2 通过@WebFilter注解注册 113
[实例03] 用过滤器统计资源访问数量 114
5.2 拦截器 115
[实例04] 捕捉一个请求的执行前、执行后和结束事件 116
[实例05] 拦截高频访问 118
5.3 监听器 120
[实例06] 监听每一个前端请求的URL、IP和session id 121
[实例07] 监听网站的当前访问人数 123
本章知识思维导图 124
第6章 Service服务 125
6.1 服务层的概念 126
6.2 @Service注解 126
[实例01] 创建用户服务,校验用户账号密码是否正确 127
6.3 同时存在多个实现类的情况 128
6.3.1 按照实现类名称映射 128
[实例02] 为翻译服务创建英译汉、法译汉实现类 129
6.3.2 按照@Service的value属性映射 131
[实例03] 为成绩服务创建升序排列和降序排列实现类 131
6.4 不实现接口的@Service类 134
[实例04] 校验前端发送的名称是否为中文姓名 134
6.5 @Service和@Repository的区别 136
本章知识思维导图 136
第7章 日志组件 137
7.1 Spring Boot默认的日志组件 138
7.1.1 log4j框架与logback框架 138
7.1.2 slf4j框架 138
7.2 打印日志 138
7.2.1 slf4j的用法 138
[实例01] 在日志中输出前端发来的数据 140
7.2.2 解读日志 141
7.3 保存日志文件 142
7.3.1 指定日志文件保存地址 142
[实例02] 在项目的logs文件夹下保存日志文件 142
7.3.2 指定日志文件名称 143
7.3.3 为日志文件添加约束 144
[实例03] 若logs文件夹下日志文件超出2kB则打包成ZIP压缩包 144
7.4 调整日志内容 146
7.4.1 设置日志级别 146
[实例04] 让所有控制器都打印DEBUG日志 146
7.4.2 修改日志格式 148
[实例05] 在控制台显示简化的中文日志,在日志文件中记录详细英文日志 148
7.5 支持logback配置文件 149
[实例06] 使用logback.xml配置日志组件,在控制台打印日志的同时生成日志文件 149
本章知识思维导图 151
第8章 单元测试 152
8.1 JUnit简介 153
8.1.1 什么是JUnit? 153
8.1.2 Spring Boot中的JUnit 153
8.2 注解 155
8.2.1 核心注解 155
[实例01] 测试用户登录验证服务 156
8.2.2 测前准备与测后收尾 157
[实例02] 在测试方法运行前后打印方法名称 158
[实例03] 在测试开始前执行初始化方法,测试结束后执行资源释放方法 159
8.2.3 参数化测试 161
[实例04] 测试判断素数算法的执行效率 161
[实例05] 设计多组用例来测试证用户登录验证功能 163
[实例06] 将季节枚举作为测试方法的参数 164
8.2.4 其他常用注解 165
8.3 断言 168
8.3.1 Assertions类的常用方法 168
8.3.2 两种导入方式 169
8.3.3 Executable接口 169
8.3.4 在测试中的应用 170
[实例07] 验证开发者编写的升序排序算法是否正确 170
[实例08] 验证用户登录方法是否完善 172
8.4 模拟Servlet内置对象 174
[实例09] 在单元测试中伪造用户登录的session记录 174
8.5 模拟网络请求 176
8.5.1 创建网络请求 176
8.5.2 添加请求参数 177
8.5.3 分析结果 178
8.5.4 在测试用的应用 179
[实例10] 测试RESTful风格的物料查询服务和物料新增服务 180
[实例11] 使用MockMvc进行断言测试 182
本章知识思维导图 184
第9章 异常处理 185
9.1 拦截特定异常 186
[实例01] 拦截缺失参数引发的空指针异常 186
9.2 拦截全局最底层异常 188
[实例02] 拦截意料之外出现的异常 188
9.3 获取具体的异常日志 190
[实例03] 打印异常的堆栈日志 190
9.4 指定被拦截的Java文件 192
9.4.1 只拦截某个包中发生的异常 192
[实例04] 只拦截注册服务引发异常 192
9.4.2 只拦截某个注解标注类发生的异常 195
[实例05] 只拦截注册服务引发异常 195
9.5 拦截自定义异常 197
[实例06] 拦截年龄是负数的异常 197
9.6 修改自定义异常的错误状态 198
[实例07] 让负数年龄引发HTTP 400错误 199
本章知识思维导图 201
第2篇 实用Web技术篇
第10章 模板引擎 204
10.1 Thymeleaf 205
10.1.1 添加依赖 205
10.1.2 跳转至HTML页面文件 206
[实例01] 为首页和登录页面编写HTML文件,并实现跳转逻辑 207
[实例02] 为项目添加默认首页和错误页 209
10.1.3 常用表达式和标签 210
10.1.4 向页面传值 212
[实例03] 在前端页面显示用户的IP地址等信息 213
10.1.5 向页面传输对象 214
[实例04] 用三种方式显示人员信息 215
10.1.6 页面中的判断 216
[实例05] 判断购票者是否符合儿童票要求 217
[实例06] 判断季节并展示结果 218
10.1.7 页面中的循环 219
[实例07] 打印人员名单 220
10.1.8 Thymeleaf内置对象 221
[实例08] 以不同形式打印当前日期 222
[实例09] 操作字符串内容 223
[实例10] 操作List、Set和Map类型的集合对象 224
[实例11] 读取当前登录的用户名和请求中的消息 225
10.1.9 嵌入其他页面文件 226
[实例12] 在主页插入顶部的登录菜单和底部的声明页面 227
10.1.10 其他配置 228
10.2 FreeMarke/ 229
10.2.1 添加依赖 229
10.2.2 添加配置 229
10.2.3 跳转至页面和传递参数 230
[实例13] 在主页中显示班级和老师姓名、年龄 230
10.2.4 指令 231
10.2.5 在网页中声明变量 233
[实例14] 使用assign指令定义西游记师徒四人的基本信息 234
10.2.6 “?”和“!”的用法 235
[实例15] 使用??和!处理后端发送的值,防止出现空数据 236
10.2.7 内置函数 236
10.2.8 页面中的条件判断 240
[实例16] 根据学生各科成绩给出优、良、及格、不及格评级 241
10.2.9 页面中的循环 243
[实例17] 使用list指令展示图书销售排行榜 243
10.2.10 在网页中声明方法 245
[实例18] 为特惠活动中的图书商品添加首尾标签 246
10.2.11 嵌入其他页面文件 247
[实例19] 使用FreeMarker嵌入顶部的登录菜单和底部的声明页面 247
本章知识思维导图 249
第11章 JSON解析器 250
11.1 Jackson 251
11.1.1 什么是JSON 251
11.1.2 Jackson的核心API 252
11.1.3 将对象转为JSON字符串 256
[实例01] 账号密码错误时返回JSON格式错误信息 258
11.1.4 将JSON字符串转为实体对象 260
[实例02] 将JSON中的员工信息封装成员工实体类 260
11.1.5 Spring Boot可自动将对象转换成JSON 262
11.1.6 Jackson的注解 264
[实例03] 利用注解设定商品实体类的JSON格式 264
11.1.7 JSON数据的增删改查 265
11.2 FastJson 268
11.2.1 添加FastJson依赖 268
11.2.2 对象与JSON字符串互转 268
[实例04] 接受前端发来的JSON登录数据,返回JSON登录结果 269
11.2.3 @JSONField注解 270
11.2.4 FastJson对JSON数据进行增删改查 272
本章知识思维导图 278
第12章 WebSocket长连接 279
12.1 概念 280
12.1.1 短连接与长连接 280
12.1.2 WebSocket协议 280
12.2 端点 280
12.2.1 添加依赖 280
12.2.2 开启自动注册端点 281
12.2.3 创建服务器端点 281
12.2.4 Session会话对象 282
12.2.5 服务器端点的事件 284
12.3 页面客户端 286
12.3.1 JavaScript中的WebSocket对象 286
12.3.2 事件及触发的方法 287
12.3.3 客户端与服务端之间的触发关系 287
12.4 一个简单实例 288
[实例01] 页面动态展示服务器回执 288
12.5 模拟手机扫码登录 291
[实例02] 模拟手机扫码登录 292
12.5.1 添加qrcode.js 292
12.5.2 模拟消息队列 292
12.5.3 服务端实现 293
12.5.4 客户端实现 294
12.5.5 控制器的实现 295
12.5.6 运行效果 295
12.6 网页聊天室 297
[实例03] 网页聊天室 297
12.6.1 添加JQuery 297
12.6.2 自定义会话组 297
12.6.3 服务端实现 298
12.6.4 客户端实现 299
12.6.5 运行效果 300
本章知识思维导图 302
第13章 上传与下载 303
13.1 上传文件 304
[实例01] 将图片文件上传至服务器 305
13.2 同时上传多个文件 307
[实例02] 一次上传文件至服务器 308
13.3 下载文件 310
[实例03] 根据URL地址下载不同的文件 311
13.4 提交Excel模板 312
13.4.1 添加POI依赖 312
13.4.2 读取Excel文件的API 313
13.4.3 综合实例 315
[实例04] 批量上传考试成绩 315
本章知识思维导图 319
第3篇 框架整合篇
第14章 持久层框架——MyBatis 322
14.1 简介 323
14.2 添加依赖 323
14.3 映射器Mappe/ 324
14.4 增、删、改、查 325
14.4.1 @Select 326
[实例01] 将t_people表中的数据取出并封装成实体类对象 328
14.4.2 @Insert、@Update和@Delete 330
[实例02] 向t_people表中添加新人员数据、修改新人员数据,再删除此新人员数据 330
14.5 SQL语句构建器 332
14.5.1 SQL类 332
14.5.2 Provider系列注解 333
14.5.3 动态构建SQL 334
[实例03] 创建带参数的接口方法,允许插入定义人员数据,并查询指定姓氏的人员数据 335
14.6 SQL参数 337
[实例04] 创建开放式人员信息增删改查映射器接口 339
14.7 结果映射 340
[实例05] 创建图书馆借书单实体列,将三表联查结果封装到借书单对象中 341
14.8 级联映射 343
14.8.1 一对一 344
[实例06] 构建手机与电池的一对一关系 345
14.8.2 一对多 346
[实例07] 构建老师与学生的一对多关系 348
本章知识思维导图 351
第15章 缓存中间件——Redis 352
15.1 Redis简介 353
15.1.1 非关系型数据库 353
15.1.2 Redis简介 353
15.1.3 为什么把Redis称为缓存? 353
15.2 Windows系统搭建Redis环境 354
15.2.1 下载 354
15.2.2 启动 355
15.3 Redis常用命令 357
15.3.1 基础键值命令 357
15.3.2 哈希命令 361
15.3.3 列表命令 364
15.3.4 集合命令 367
15.4 Spring Boot访问Redis 370
15.4.1 添加依赖 370
15.4.2 配置项 371
15.4.3 使用Jedis访问Redis 371
[实例01] 高并发抢票服务 373
15.4.4 使用RedisTemplate访问Redis 376
[实例02] 为视频播放量排行榜添加缓存 379
本章知识思维导图 384
|
內容試閱:
|
Spring Boot是在Spring框架的基础之上发展而来的,不仅继承了Spring框架的所有特点,还融合了Spring家族其他框架的特色功能。因为Spring Boot设计合理、结构紧凑、开发效率高,所以一经推出就成为主流Java框架,在商业项目中的覆盖率很高。
但对于初学者而言,学习Spring Boot的门槛是很高的,不仅需要掌握Java SE、Java Servlet、Spring框架的基础,还需要了解Spring MVC、Spring Data、JUnit、Maven等一系列框架和软件的使用方法。本书为了降低初学者的学习压力,尽量避免剖析Spring Boot的底层代码,而是把相关知识点融入Spring Boot中进行讲解,通过语法与示例教大家如何在Spring Boot项目中实现具体功能。即使初学者没有其他框架的基础,也可能参考本书编写Spring Boot项目。
本书内容
本书包含了学习Spring Boot开发的各类必备知识,全书共分为3篇15章内容,结构如下。
第1篇:基础知识篇。本篇主要对Spring Boot的一些基础知识进行详解,包括环境搭建、基础的语法、项目结构、核心技术、常用技术等内容。
第2篇:实用Web技术篇。本篇主要介绍Spring Boot开发Web项目时需要依赖的一些其他组件,这些组件可以丰富网页的功能,包括模板引擎、JSON的使用、长连接的实现以及上传下载功能。
第3篇:框架整合篇。本篇会介绍如何在Spring Boot项目中整合目前比较流行的持久层框架MyBatis和缓存中间件Redis。
本书特点
知识讲解详尽细致。本书以入门学员为对象,力求将知识点划分得更加细致,讲解更加详细,使读者能够“学必会,会必用”。
案例侧重实用有趣。通过实例学习是最好的编程学习方式,本书在讲解知识时,通过有趣、实用的案例对所讲解的知识点进行解析,让读者不仅学会知识,还能够了解所学知识的真实使用场景。
思维导图总结知识。每章最后都使用思维导图总结本章重点知识,使读者能一目了然地回顾本章知识点以及需要重点掌握的知识。
读者对象
Java进阶学习者 编程爱好者
大中专院校的老师和学生 相关培训机构的老师和学员
做毕业设计的学生 初、中、高级程序开发人员
程序测试及维护人员 参加实习的“菜鸟”程序员
读者服务
为了方便解决本书学习中的疑难问题,我们提供了多种服务方式,并由作者团队提供在线技术指导和社区服务,服务方式如下:
√ 企业QQ:4006751066
√ QQ群:309198926
√ 服务电话:400-67501966、0431-84978981
本书约定
开发环境及工具如下:
√ 操作系统:Windows 10 64位
√ 开发工具:OpenJDK 11、Eclipse 2021-03
√ 数 据 库:MySQL 8.0、Redis 3.2.100
√ 其他工具:Maven 3.8.1、Postman 8.6.2、Sping Tool Suite 4.11.0
致读者
本书由明日科技开发团队组织编写,主要人员有申小琦、王小科、赵宁、李菁菁、何平、张鑫、周佳星、赛奎春、王国辉、李磊、杨丽、高春艳、张宝华、庞凤、宋万勇、葛忠月等。在编写过程中,我们以科学、严谨的态度,力求精益求精,但疏漏之处在所难免,敬请广大读者批评指正。
感谢您阅读本书,零基础编程,一切皆有可能,希望本书能成为您编程路上的敲门砖。
祝读书快乐!
编著者
|
|