×
暂无评论
图文详情
  • ISBN:9787115632821
  • 装帧:平装-胶订
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:392
  • 出版时间:2024-04-01
  • 条形码:9787115632821 ; 978-7-115-63282-1

本书特色

·《深入浅出Spring Boot 2.x》时隔5年的全面更新;

·来自一线开发人员的实战经验总结,全方位讲解Spring Boot 3.x企业级开发

·采用Java 8之后的新语法和新技术,全面讲解Spring Boot 3.x;

·从理论到实践,全面介绍Spring Boot 3.x的原理和应用;

·紧扣互联网企业的实际需求,追上微服务和云服务的潮流。

内容简介

Spring框架是Java EE开发的强有力的工具和事实标准,而Spring Boot采用“约定优于配置”的原则简化 Spring的开发,成为业界流行的微服务开发框架,被越来越多的企业采用。为了适应新潮流,本书对Spring Boot 3.x技术进行深入讲解。 本书从一个简单的项目开始讲解Spring Boot企业级开发,其内容包含全注解下的Spring IoC和Spring AOP、数据库编程(JPA、MyBatis和JDBC)、数据库事务、NoSQL数据库(Redis和MongoDB)技术、Spring MVC、REST风格、互联网抢购业务、监控与容器部署、Spring Cloud Alibaba微服务开发等。 本书内容紧扣互联网企业的实际需求,从全注解下的Spring知识讲到Spring Boot的企业级开发,对于Java开发人员,尤其是初学Spring Boot的人员和需要从传统Spring转向Spring Boot开发的技术人员,具有很高的参考价值。

目录

第1章 Spring Boot 3.x的来临 1

1.1 Spring框架的历史 1

1.2 Spring Boot的特点 3

1.3 Spring和Spring Boot的关系 4

1.4 开发Spring Boot项目 4



第2章 聊聊开发环境搭建和基本开发 8

2.1 搭建Spring Boot开发环境 8

2.1.1 搭建Eclipse开发环境 8

2.1.2 搭建IntelliJ IDEA开发环境 11

2.2 使用自定义配置 13

2.3 开发自己的Spring Boot项目 14



第3章 全注解下的Spring IoC 16

3.1 IoC容器简介 16

3.2 装配你的Bean 20

3.2.1 通过扫描装配你的Bean 20

3.2.2 自定义第三方Bean 25

3.3 依赖注入 26

3.3.1 注解@Autowired 27

3.3.2 消除歧义性—@Primary和@Qualifier 29

3.3.3 带有参数的构造方法类的装配 29

3.4 生命周期 30

3.5 使用属性文件 36

3.6 条件装配Bean 39

3.7 Bean的作用域 40

3.8 使用注解@Profile 42

3.9 使用Sp EL 43



第4章 开始约定编程—Spring AOP 46

4.1 约定编程 46

4.1.1 约定 46

4.1.2 ProxyBean的实现 51

4.2 AOP的知识 54

4.2.1 为什么要使用AOP 54

4.2.2 AOP的术语和流程 57

4.3 AOP开发详解 59

4.3.1 确定拦截目标 59

4.3.2 开发切面 59

4.3.3 定义切点 60

4.3.4 测试AOP 62

4.3.5 环绕通知 64

4.3.6 引入 65

4.3.7 通知获取参数 67

4.3.8 织入 68

4.4 多个切面 68



第5章 访问数据库 73

5.1 配置数据源 74

5.1.1 配置默认数据源 74

5.1.2 配置自定义数据源 74

5.2 使用JdbcTemplate操作数据库 78

5.3 使用JPA(Hibernate)操作数据库 81

5.3.1 概述 81

5.3.2 开发JPA 82

5.4 整合MyBatis框架 87

5.4.1 MyBatis简介 87

5.4.2 MyBatis的配置 88

5.4.3 Spring Boot整合MyBatis 92

5.4.4 MyBatis的其他配置 95



第6章 聊聊数据库事务处理 97

6.1 JDBC的数据库事务 98

6.2 Spring声明式事务的使用 100

6.2.1 Spring声明式事务约定 100

6.2.2 注解@Transactional的配置项 101

6.2.3 Spring事务管理器 103

6.2.4 测试数据库事务 105

6.3 隔离级别 109

6.3.1 数据库事务的要素 109

6.3.2 详解隔离级别 110

6.4 传播行为 114

6.4.1 传播行为 115

6.4.2 测试传播行为 116

6.4.3 事务状态 121

6.5 Spring数据库事务实战 122

6.5.1 准确启用Spring数据库事务 122

6.5.2 占用事务时间过长 123

6.5.3 @Transactional自调用失效问题 123



第7章 使用性能利器—Redis 128

7.1 spring-data-redis项目简介 129

7.1.1 spring-data-redis项目的设计 129

7.1.2 RedisTemplate和StringRedisTemplate 131

7.1.3 Spring对Redis数据类型操作的封装 134

7.1.4 SessionCallback和RedisCallback接口 135

7.2 在Spring Boot中配置和操作Redis 136

7.2.1 在Spring Boot中配置Redis 136

7.2.2 操作Redis数据类型 137

7.3 Redis的一些特殊用法 141

7.3.1 使用Redis事务 141

7.3.2 使用Redis流水线 143

7.3.3 使用Redis发布/订阅 144

7.3.4 使用Lua脚本 147

7.4 使用Spring缓存注解操作Redis 150

7.4.1 缓存管理器和缓存的启用 150

7.4.2 开发缓存注解 151

7.4.3 测试缓存注解 156

7.4.4 缓存注解自调用失效问题 158

7.4.5 缓存脏数据说明 159

7.4.6 自定义缓存管理器 160



第8章 文档数据库—MongoDB 162

8.1 配置MongoDB 163

8.2 使用MongoTemplate实例 164

8.2.1 准备MongoDB的文档 164

8.2.2 使用MongoTemplate操作文档 165

8.3 使用JPA 170

8.3.1 基本用法 170

8.3.2 使用自定义查询 172



第9章 初识Spring MVC 175

9.1 Spring MVC框架的设计 176

9.2 Spring MVC流程 176

9.3 定制Spring MVC的初始化 182

9.4 Spring MVC实例 184

9.4.1 开发控制器 184

9.4.2 视图和视图渲染 185



第10章 深入Spring MVC开发 188

10.1 处理器映射 188

10.2 获取控制器参数 189

10.2.1 在无注解的情况下获取参数 190

10.2.2 使用@RequestParam获取参数 190

10.2.3 传递数组 191

10.2.4 传递JSON数据集 191

10.2.5 通过URL传递参数 194

10.2.6 获取格式化参数 195

10.3 自定义参数转换规则 196

10.3.1 处理器转换参数逻辑 197

10.3.2 一对一转换器 200

10.3.3 GenericConverter集合和数组转换 202

10.4 数据验证 202

10.4.1 JSR-303验证 202

10.4.2 参数验证机制 205

10.5 数据模型 208

10.6 视图和视图解析器 210

10.6.1 视图设计 210

10.6.2 视图实例—导出Excel文档 212

10.7 文件上传 214

10.7.1 文件上传的配置项 214

10.7.2 开发文件上传功能 215

10.8 拦截器 218

10.8.1 设计拦截器 218

10.8.2 开发拦截器 219

10.8.3 多个拦截器方法的运行顺序 221

10.9 国际化 224

10.9.1 国际化消息源 224

10.9.2 国际化解析器 225

10.9.3 国际化实例—SessionLocaleResolver 227

10.10 Spring MVC拾遗 230

10.10.1 @ResponseBody转换为JSON的秘密 230

10.10.2 重定向 231

10.10.3 操作会话属性 233

10.10.4 给控制器增加通知 235

10.10.5 获取请求头参数 237



第11章 构建REST风格网站 240

11.1 REST简述 240

11.1.1 REST名词解释 240

11.1.2 HTTP的动作 241

11.1.3 REST风格的一些误区 242

11.2 使用Spring MVC开发REST风格端点 242

11.2.1 Spring MVC整合REST 242

11.2.2 使用Spring开发REST风格的端点 243

11.2.3 使用@RestController 251

11.2.4 渲染结果 252

11.2.5 处理HTTP状态码、响应头和异常 254

11.3 客户端请求RestTemplate 257

11.3.1 使用RestTemplate请求后端 258

11.3.2 获取状态码和响应头 261

11.3.3 定制请求体和响应类型 262



第12章 安全—Spring Security 264

12.1 概述和简单安全验证 264

12.1.1 使用用户密码登录系统 265

12.1.2 Spring Security的配置项 266

12.1.3 开发Spring Security的主要的类 266

12.2 使用UserDetailsService接口定制用户信息 267

12.2.1 使用内存保存用户信息 267

12.2.2 从数据库中读取用户信息 268

12.2.3 使用自定义UserDetailsService对象 270

12.2.4 密码编码器 270

12.3 限制请求 271

12.3.1 配置请求路径访问权限 272

12.3.2 自定义验证方法 274

12.3.3 不拦截的请求 275

12.3.4 防止跨站点请求伪造 275

12.4 登录和登出设置 277

12.4.1 自定义登录页面 277

12.4.2 启用HTTP Basic验证 279

12.4.3 登出配置 279



第13章 学点Spring其他的技术 282

13.1 异步线程池 282

13.1.1 定义线程池和开启异步可用 283

13.1.2 异步实例 284

13.2 异步消息—RabbitMQ 285

13.3 定时任务 289



第14章 实践一下—抢购商品 293

14.1 设计与开发 293

14.1.1 数据库表设计 293

14.1.2 使用MyBatis开发持久层 294

14.1.3 使用Spring开发业务层和控制层 297

14.1.4 测试和配置 299

14.2 高并发开发 301

14.2.1 超发现象 301

14.2.2 悲观锁 303

14.2.3 乐观锁 304



第15章 打包、测试、监控、预先编译和容器部署 310

15.1 打包和运行 310

15.1.1 打包项目 310

15.1.2 运行项目 311

15.1.3 热部署 314

15.2 测试 315

15.2.1 构建测试类 316

15.2.2 使用随机端口和REST风格测试 317

15.2.3 Mock测试 317

15.3 Actuator监控端点 319

15.4 HTTP监控 320

15.4.1 查看敏感信息 321

15.4.2 shutdown端点 323

15.4.3 配置端点 324

15.4.4 自定义端点 326

15.4.5 健康指标项 328

15.5 JMX监控 331

15.6 预先编译 332

15.6.1 搭建GraalVM环境 333

15.6.2 创建项目 335

15.6.3 生成和运行原生文件 336

15.7 部署到Docker容器中 337



第16章 Spring Cloud Alibaba微服务开发 339

16.1 服务治理—Alibaba Nacos 342

16.1.1 下载、安装、配置和启动Nacos 342

16.1.2 服务发现 343

16.1.3 搭建Nacos集群 350

16.2 服务调用 352

16.2.1 客户端负载均衡 353

16.2.2 OpenFeign声明式服务调用 356

16.3 容错机制—Spring Cloud Alibaba Sentinel 359

16.3.1 设置埋点 360

16.3.2 Sentinel控制台 361

16.3.3 流控 363

16.3.4 熔断 364

16.3.5 在OpenFeign中使用Sentinel 371

16.4 API网关—Spring Cloud Gateway 372

16.4.1 Gateway的工作原理 374

16.4.2 配置路由规则 375

16.4.3 过滤器 376

16.4.4 使用Sentinel管控Gateway 383



附录 Spring Boot知识点补充 387

A.1 Java 8和之后版本的新语法 387

A.1.1 Lambda表达式 387

A.1.2 本地变量类型推断 387

A.1.3 switch语句的改善 388

A.1.4 文本块 388

A.1.5 紧凑声明类的关键字record 389

A.1.6 instanceof语法的改善 390

A.2 选择内嵌服务器 391

A.3 修改商标 391
展开全部

作者简介

杨开振,精通Java互联网技术,拥有十余年企业级应用开发经验,著有热销书《深入浅出Spring Boot 2.x》《Spring Cloud微服务和分布式系统实践》《对照Excel,零基础学Python数据分析》《深入浅出MyBatis技术原理与实战》和《Java EE互联网轻量级框架整合开发——SSM框架(Spring MVC Spring MyBatis)和Redis实现》。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航