新書推薦:
《
敦煌写本文献学(增订本)
》
售價:HK$
221.8
《
耕读史
》
售價:HK$
109.8
《
地理计算与R语言 [英] 罗宾·洛夫莱斯 [德]雅纳·蒙乔 [波兰] 雅库布·诺沃萨德
》
售價:HK$
121.0
《
沈括的知识世界:一种闻见主义的实践(中华学术译丛)
》
售價:HK$
87.4
《
大思维:哥伦比亚商学院六步创新思维模型
》
售價:HK$
72.8
《
宏观经济学(第三版)【2024诺贝尔经济学奖获奖者作品】
》
售價:HK$
155.7
《
UE5虚幻引擎必修课(视频教学版)
》
售價:HK$
110.9
《
真需求
》
售價:HK$
110.9
|
編輯推薦: |
《学习Spring Boot 3.0》专为新手和具有一定经验的Spring开发人员设计。它将教你如何构建Java应用程序,而不会在基础架构和其他烦琐的细节上浪费时间。本书将帮助你专注于在真实数据库之上构建Web应用程序,并使用现代安全实践进行锁定。
|
內容簡介: |
《学习Spring Boot 3.0》详细阐述了与Spring Boot 3.0相关的基本解决方案,主要包括Spring Boot的核心功能、使用Spring Boot创建Web应用程序、使用Spring Boot查询数据、使用Spring Boot保护应用程序、使用Spring Boot进行测试、使用Spring Boot配置应用程序、使用Spring Boot发布应用程序、使用Spring Boot构建原生程序、编写响应式Web控制器、响应式处理数据等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
|
關於作者: |
格雷格·L.特恩奎斯特是Spring Data JPA和Spring Web Services的首席开发人员。他为Spring HATEOAS、Spring Data REST、Spring Security、Spring Framework以及Spring portfolio的许多其他部分都做出了贡献。多年以来,他一直在用他的script-fu维护Spring Data团队的持续集成(CI)系统。他撰写了多部关于Spring Boot的著作,包括Packt出版社的畅销书Learning Spring Boot 2.0第二版以及第一本上市的Spring Boot书籍。他甚至推出了自己的YouTube频道Spring Boot Learning(http://bit.ly/3uSPLCz),你可以在该频道学习Spring Boot并享受其中的乐趣。在加入Spring团队之前,Greg在Harris Corp担任高级软件工程师,参与了多个项目。他拥有计算机工程硕士学位,现居美国。
|
目錄:
|
第1篇 Spring Boot基础知识
第1章 Spring Boot的核心功能 3
1.1 技术要求 4
1.1.1 安装Java 17 4
1.1.2 安装现代IDE 5
1.1.3 创建GitHub账户 5
1.1.4 寻找其他支持 6
1.2 自动配置Spring bean 6
1.2.1 了解应用程序上下文 6
1.2.2 探索Spring Boot中的自动配置策略 7
1.3 使用Spring Boot启动器添加portfolio组件 10
1.4 使用配置属性自定义设置 12
1.4.1 创建自定义属性 13
1.4.2 外部化应用程序配置 14
1.4.3 配置基于属性的Bean 16
1.5 管理应用程序依赖项 18
1.6 小结 19
第2篇 使用Spring Boot创建应用程序
第2章 使用Spring Boot创建Web应用程序 23
2.1 使用start.spring.io构建应用程序 23
2.2 创建Spring MVC Web控制器 26
2.3 使用start.spring.io扩充现有项目 28
2.4 利用模板创建内容 30
2.4.1 将演示数据添加到模板中 31
2.4.2 使用更好的设计构建我们的应用程序 33
2.4.3 通过构造函数调用注入依赖 35
2.4.4 通过HTML表单更改数据 36
2.5 创建基于JSON的API 39
2.6 将Node.js挂接到Spring Boot Web应用程序 43
2.6.1 将JavaScript与Node.js绑定在一起 45
2.6.2 创建React.js应用程序 46
2.7 小结 52
第3章 使用Spring Boot查询数据 53
3.1 将Spring Data添加到现有的Spring Boot应用程序中 53
3.1.1 使用Spring Data轻松管理数据 54
3.1.2 将Spring Data JPA添加到项目中 56
3.2 DTO、实体和POJO 56
3.2.1 实体 57
3.2.2 DTO 58
3.2.3 POJO 59
3.3 创建Spring Data存储库 59
3.4 使用自定义查找器 61
3.4.1 对结果进行排序 65
3.4.2 限制查询结果 66
3.5 使用query by example找到动态查询的答案 67
3.6 使用自定义JPA 70
3.7 小结 73
第4章 使用Spring Boot保护应用程序 75
4.1 将Spring Security添加到项目中 76
4.2 使用自定义安全策略创建用户 77
4.3 使用Spring Data支持的一组用户交换硬编码用户 79
4.4 保护网络路由和HTTP谓词 82
4.4.1 Spring Boot自动配置的安全策略 83
4.4.2 表单身份验证和基本身份验证 83
4.4.3 创建自定义安全策略 86
4.4.4 关于跨站请求伪造的问题 87
4.5 Spring Data的安全保护方法 89
4.5.1 更新模型 89
4.5.2 取得数据的所有权 91
4.5.3 添加删除按钮 92
4.5.4 锁定访问 93
4.5.5 启用方法级安全性 94
4.5.6 在站点上显示用户详细信息 94
4.6 利用Google对用户进行身份验证 98
4.6.1 使用OAuth的优点 99
4.6.2 使用OAuth的缺点 99
4.6.3 创建Google OAuth 2.0应用程序 99
4.6.4 将OAuth客户端添加到Spring Boot项目中 101
4.6.5 远程调用OAuth2 API 104
4.6.6 创建一个OAuth2支持的Web应用程序 108
4.7 小结 115
第5章 使用Spring Boot进行测试 117
5.1 将JUnit 5添加到应用程序中 117
5.2 为域对象创建测试 119
5.3 使用MockMVC测试Web控制器 122
5.4 使用模拟测试数据存储库 125
5.5 使用嵌入式数据库测试数据存储库 130
5.6 将Testcontainers添加到应用程序中 134
5.7 使用Testcontainers测试数据存储库 136
5.8 使用Spring Security Test测试安全策略 140
5.9 小结 145
第3篇 使用Spring Boot发布应用程序
第6章 使用Spring Boot配置应用程序 149
6.1 创建自定义属性 149
6.2 创建基于配置文件的属性文件 154
6.3 切换到YAML 157
6.4 使用环境变量设置属性 159
6.5 属性覆盖的顺序 160
6.6 小结 163
第7章 使用Spring Boot发布应用程序 165
7.1 创建超级JAR 165
7.2 组装Docker容器 168
7.3 构建“正确”类型的容器 170
7.4 将应用程序发布到Docker Hub上 173
7.5 在生产环境中进行调整 175
7.6 使用Spring Boot进行扩展 176
7.7 小结 180
第8章 使用Spring Boot构建原生程序 181
8.1 关于GraalVM 181
8.2 为GraalVM改造应用程序 182
8.3 在GraalVM中运行原生Spring Boot应用程序 185
8.4 需要GraalVM的原因 189
8.5 使用GraalVM组装Docker容器 190
8.5.1 Spring Boot 3.0与Spring Boot 2.7和Spring Native 191
8.5.2 GraalVM和其他库 191
8.6 小结 192
第4篇 使用Spring Boot扩展应用程序
第9章 编写响应式Web控制器 195
9.1 关于响应式编程 195
9.1.1 响应式编程简介 196
9.1.2 Reactive Streams详解 197
9.2 创建响应式Spring Boot应用程序 198
9.3 通过响应式GET方法提供数据 200
9.4 通过响应式POST方法使用传入数据 201
9.4.1 使用Project Reactor扩展应用程序 202
9.4.2 Java并发编程简史 203
9.5 提供响应式模板 204
9.5.1 创建响应式Web控制器 205
9.5.2 制作Thymeleaf模板 206
9.6 响应式创建超媒体 210
9.7 小结 216
第10章 响应式处理数据 219
10.1 响应式获取数据的难题 219
10.2 选择响应式数据存储 221
10.3 创建响应式数据存储库 222
10.4 试用R2DBC 223
10.4.1 使用R2dbcEntityTemplate加载数据 225
10.4.2 将数据响应式地返回API控制器 226
10.4.3 响应式地处理模板中的数据 228
10.5 小结 230
|
內容試閱:
|
本书专为新手和具有一定经验的Spring开发人员设计。它将教你如何构建Java应用程序,而不会在基础架构和其他烦琐的细节上浪费时间。本书将帮助你专注于在真实数据库之上构建Web应用程序,并使用现代安全实践进行锁定。最重要的是,你会在本书中发现多种将应用程序投入生产环境的方法。如果这还不够,它甚至在末尾还给出一些秘密武器(好吧,不是真正的秘密),即通过使用响应式编程来获取和运行现有服务器(或云)中的更多内容。本书读者阅读本书,你应该对Java有初步的了解,最好是Java 8或更高版本。熟悉lambda函数、方法引用、记录类型和Java 17中新的和改进的集合API当然更好,但这不是必需的。使用过Spring Boot的以前版本(1.x、2.x)会更好,但不是必需的。内容介绍本书分为4篇,共10章。具体内容如下。? 第1篇:Spring Boot基础知识,包括第1章。? 第1章“Spring Boot的核心功能”,介绍Spring Boot的独特魅力及其在构建应用程序时的基本功能。? 第2篇:使用Spring Boot创建应用程序,包括第2~5章。? 第2章“使用Spring Boot创建Web应用程序”,教你如何通过服务器端和客户端选项轻松地为Java应用程序构建Web层。? 第3章“使用Spring Boot查询数据”,详细介绍如何通过Spring Data充分利用数据库。? 第4章“使用Spring Boot保护应用程序”,展示如何使用Spring Security的尖端功能从内到外锁定你的应用程序,使其免受坏人的攻击。? 第5章“使用Spring Boot进行测试”,教你如何通过使用模拟和嵌入式数据库进行测试,甚至将 Testcontainers 与真实数据库结合使用来建立对系统的 信心。? 第3篇:使用Spring Boot发布应用程序,包括第6~8章。? 第6章“使用Spring Boot配置应用程序”,展示在构建应用程序后调整应用程序的方法。? 第7章“使用Spring Boot发布应用程序”,探讨将应用程序投入生产环境并将其交付给用户的多种方法。? 第8章“使用Spring Boot构建原生程序”,向你展示如何使用亚秒级启动的原生镜像来加快你的应用程序,并且不会占用所有资源。? 第4篇:使用Spring Boot扩展应用程序,包括第9章和第10章。? 第9章“编写响应式Web控制器”,阐释响应式编程的概念,并且演示如何编写响应式Web控制器。? 第10章“响应式处理数据”,探讨响应式获取数据的难题,介绍如何使用R2DBC以响应方式查询数据。充分利用本书Spring Boot 3.0基于Java 17构建。通过sdkman(https://sdkman.io),你可以轻松地安装所需的Java版本。第8章“使用Spring Boot构建原生程序”介绍如何使用sdkman安装特定版本的Java 17(该版本支持在GraalVM上构建原生镜像)。虽然可以使用一些文本编辑器编写代码,但任何现代集成开发环境(见表P-1)都将大大增强编码体验。你可以选择自己最喜欢的集成开发环境。表P-1 本书涵盖的软件/硬件和操作系统需求本书涵盖的软件/硬件 操作系统需求sdkman(适用于Java 17)(https://sdkman.io) Windows、macOS或Linux任何现代集成开发环境都可以帮助你编写代码:? IntelliJ IDEA: https://springbootlearning.com/intellij-idea-try-it Windows、macOS或Linux续表 本书涵盖的软件/硬件 操作系统需求? VS Code: https://springbootlearning.com/vscode ? Spring Tool Suite: https://springbootlearning.com/sts Windows、macOS或Linux VS Code和Spring Tool Suite是免费的。IntelliJ IDEA有社区版和终极版。社区版是免费的,但某些Spring特有的功能则需要购买终极版。终极版有30天的免费试用期。如果你正在使用本书的数字版本,我们建议你自己输入代码或从本书的Github存储库中访问代码(链接将在下文中提供)。这样做将帮助你避免与复制和粘贴代码相关的任何潜在错误。本书并不是你构建Spring Boot应用程序之旅的终点。你也可以查看本书作者的YouTube频道Spring Boot Learning,该频道将发布有关Spring Boot和软件工程的视频。其网址如下: http://bit.ly/3uSPLCz 此外,以下网址也可提供有助于你编写更好应用程序的其他资源: https://springbootlearning.com 下载示例代码文件本书随附的代码可以在配套GitHub存储库中找到,其网址如下: https://github.com/PacktPublishing/Distributed-Machine-Learning-with-Python 如果代码被更新,那么现有的GitHub存储库也会保持同步更新。下载彩色图像我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图/图表的彩色图像。你可以通过以下地址进行下载: https://packt.link/FvE6S本书约定本书中使用了许多文本约定。(1)有关代码块的设置如下: @Controllerpublic class HomeController { private final VideoService videoService; public HomeController(VideoService videoService) {this.videoService = videoService;} @GetMapping(”/”)public String index(Model model) {model.addAttribute(”videos”, videoService.getVideos());return ”index”;}} (2)当我们希望提醒你注意代码块的特定部分时,相关行或项目将加粗进行显示: @BeanSecurityFilterChain configureSecurity(HttpSecurity http) {http.authorizeHttpRequests().requestMatchers(”/login”).permitAll().requestMatchers(”/”, ”/search”).authenticated().anyRequest().denyAll().and().formLogin().and().httpBasic();return http.build();} (3)任何命令行的输入或输出都采用如下所示的粗体代码形式:$ cd ch7$ ./mvnw clean spring-boot:build-image (4)术语或重要单词采用中英文对照形式给出,在括号内保留其英文原文。示例如下: Spring AMQP:使用高级消息队列协议(advanced message queuing protocol,AMQP)消息代理进行异步通信。Spring AOP:使用面向方面的编程(aspect-oriented programming,AOP)将建议应用于代码。 (5)对于界面词汇或专有名词将保留其英文原文,在括号内添加其中文译文。示例如下: 可以看到,该页面显示了额外的安全详细信息。它具有Username(用户名)字段以及用户已获分配的Authorities(权限)。最后,有一个Logout(注销)按钮。 (6)本书还使用了以下两个图标: 表示警告或重要的注意事项。 表示提示信息或操作技巧。
|
|