关于代码
本书给予读者基于实践和项目驱动的体验。从第2章开始,我们将为一个虚拟的在线书店建立由多个云原生应用组成的系统。
书中项目开发的所有源代码都可以在GitHub(https://github.com/ThomasVitale/cloud-native- spring-in-action)上找到,并基于Apache许可证2.0进行授权。对于每一章,你都会发现有一个“begin”和一个“end”目录。每一章都建立在前一章的基础上,但即便你没有关注前面的章节,也始终可以把某一章的“begin”目录作为一个起点。“end”目录包含完成本章所有步骤后的最终结果,你可以将其与自己的解决方案进行对比。例如,你可以在Chapter03目录中找到第3章的源码,其中包含了“03-begin”和“03-end”目录。
本书开发的所有应用都是基于Java 17和Spring Boot 2.7,并使用Gradle构建的。这些项目可以导入任何支持Java、Gradle和Spring Boot的IDE中,如Visual Studio Code、IntelliJ IDEA或Eclipse。除此之外,你还需要安装Docker。第2章和附录A提供了更多的信息,以帮助你建立本地环境。
这些样例已经在macOS、Ubuntu和Windows上进行了测试。在Windows上,我建议使用Windows Subsystem for Linux来完成本书中描述的部署和配置任务。在macOS上,如果你使用Apple Silicon机器的话,你可以运行所有的例子,但可能会遇到一些工具性能问题,在编写本书时这些工具没有提供对ARM64架构的原生支持。在相关章节中,我会添加额外的背景信息。
前面提到的GitHub资源库(https://github.com/ThomasVitale/cloud-native-spring-in-action)在主分支中包含了本书的所有源代码。除此之外,我还计划维护一个sb-2-main分支,在该分支中我将根据Spring Boot 2.x的未来版本保持源代码的更新;以及一个sb-3-main分支,在该分支下我将根据Spring Boot 3.x的未来版本对源代码不断演进。
本书包含许多源代码样例,有的使用已编号的程序清单,有的则直接嵌入正文。在这两种情况下,源代码都使用固定宽度的字体进行排版,以便将其与普通文本区分开。有时也会用粗体字来突出显示与本章前文步骤相比有变化的代码,例如,将一个新的特性添加到现有代码行。
在许多情况下,原始源代码会重新格式化,我们添加了换行符和重新缩进,以适应书中可用的页面空间。在极少数情况下,这样做依然是不够的,在这种情况下程序清单会包括换行符(➥)。此外,如果在正文中已经描述过代码,源代码中的注释通常会被移除。许多程序清单会有代码注释,用来突出强调重要的概念。