thinking-in-spring-boot-samples
thinking-in-spring-boot-samples copied to clipboard
【勘误记录】《Spring Boot 编程思想 - 核心篇》2019年3月第一版
书名:《Spring Boot 编程思想 - 核心篇》 ISBN:978-7-121-36039-8 版次:2019 年 3 月第 1 版 如果您在阅读本书时,发现了任何错误,请直接备注,后续的出版物将修正其中错误,非常感谢~
93页出现spring-boot-starter-tomcat的单词starter分开和spring-boot-starter-undertow 中的undertow单词分开
✅ 谢谢 @zhengjiangming 反馈,已采纳~
155页最后一段中:"类似地,凡是被@Component元标注(meta-annotated)的注解,如@Service,当任何组件标注它时,也被当做组件扫描的候选对象:" 这句话可以调整一下,容易搞不清楚,被视作组件扫描的候选对象到底是谁. 这样调整一下是否好一点,如"类似地,凡是被@Component元标注(meta-annotated)的注解,如@Service,所标注的任何组件,也都被当做组件扫描的候选对象:"
✅ 谢谢 @RockFishChina 反馈,这样的表达更好理解。
187页 中段 所谓的"组合注解"...其目的在于将这些关联的注解行为组合成单个自定义注解.
行为组合成注解 ?
:star: 小马哥:注解行为组合成... -> 注解行为 组合成...(这样断句)
注解行为组合至单个自定义注解 容易理解 注解行为组合成...注解 行为和注解不是一类事物.
226页 @enable注解模块中 EnableWebFlux缺少@
✅ 谢谢 @wqyblue3316 反馈,已采纳~
239 第6行: 实现类 AnnotationConfigBeanDefini(此处多个空格)tionParser
✅ 谢谢 @RockFishChina 反馈,已确认排版错误并收录~
40页 正文第1行: 命令执行后,JVM运行失败,提示类org.springframework.boot.Spring(此处多个空格)Application无法找到。
✅ 谢谢反馈,已采纳~
42页 正文第4行,在IDEA中同时按下command+O.... 此处快捷键应当为 command+N
✅ 谢谢 @Yuhuiyang-Dev 反馈,已采纳~
110页倒数第四行,“其Bean对象的行文“”应该修改成,行为
✅ 谢谢 @alonecong 反馈,已确认错误并收录~
37页 “.JarLauncher对应的 WAR 文件实现”,应该为.JarLauncher对应的 JAR 文件实现
:star: 小马哥:感谢 @nosqlcoco 的反馈,此处并非错误,而是强调 JarLauncher 对应的 WAR 实现,感谢反馈~
43页,“故符合xxxx.startWith(BOOT_INF_LIB)的判断”,应该为“故符合xxxx.startWith(BOOT_INF_CLASSES)的判断”
✅ 谢谢 @nosqlcoco 反馈,已确认编写错误并收录~
39 页第 2 行 "org.springframe work.boot" 中多了一个空格
✅ 谢谢 @stackfing 反馈,已采纳~(印刷错误)
294页,第二行,并且它可能会造成默写Spring Boot应用的错误 默写->某些 ??
✅ 谢谢 @RockFishChina 反馈,已确认编写错误并收录~
93页,第二行,“替换默认的 Jetty Web Server” 此处应为“默认的 Netty Web Server”
✅ 谢谢 @liaozan 反馈,已确认编写错误并收录~
98页 第二行 A single @SpringBoot Application 一个注解被分开2个词了, 应改为 A single @SpringBootApplication
✅ 谢谢 @porscheYong 反馈,已确认排版错误并收录~
37页 “.JarLauncher对应的 WAR 文件实现”,应该为.JarLauncher对应的 JAR 文件实现
37页是没有问题的你要把整句话读一次就知道了,对应WAR文件实现是指后面的WarLauncher
:star: 感谢 @THyyy 提供回复~
@xkcoding: 91 页正文第一段。
当前 WebServer 实现类为 org.springframework.boot.web.embedded.undertow.UndertowWebServer。
该部分内容应该属于上方的日志打印部分,而不应出现在正文,望小马哥确认该问题!
✅ 谢谢 @xkcoding 的反馈,已确认排版错误并收录~
https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/8#issue-435356782
@xkcoding: 92 页正文 倒数 第二段。
当前 WebServer 实现类为 org.springframework.boot.web.embedded.undertow.UndertowWebServer。
该部分内容应该属于日志打印部分,而不应出现在正文,望小马哥确认该问题!
✅ 谢谢 @xkcoding 的反馈,已确认排版错误并收录~ https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/8#issuecomment-485058837
@xkcoding : 94 页正文第一段。
当前 WebServer 实现类为 org.springframework.boot.web.embedded.jetty.JettyWebServer。
该部分内容应该属于日志打印部分,而不应出现在正文,望小马哥确认该问题!
✅ 谢谢 @xkcoding 的反馈,已确认排版错误并收录~ https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/8#issuecomment-485058940
@xkcoding : 95 页正文第二段。
当前 WebServer 实现类为 org.springframework.boot.web.embedded.tomcat.TomcatWebServer。
该部分内容应该属于日志打印部分,而不应出现在正文,望小马哥确认该问题!
✅ 谢谢 @xkcoding 的反馈,已确认排版错误并收录~ https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/8#issuecomment-485058976
@xkcoding : 106 页正文第二段。
当前 WebServer 实现类为 org.springframework.boot.web.embedded.tomcat.TomcatWebServer。
该部分内容应该属于日志打印部分,而不应出现在正文,望小马哥确认该问题!
✅ 谢谢 @xkcoding 的反馈,已确认排版错误并收录~ https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/8#issuecomment-485059764
73页单词错误,类似于Spring Boot FAR JAR。 应该修正Spring Boot FAT JAR
✅ 谢谢 @hulanhui 的反馈,已确认拼写错误并收录~
@xkcoding : 103 页正文第二段。
尽管 @CompoentScan 仅关注于 @Component,然而由于 ......
~~@CompoentScan~~ 修改为 @ComponentScan,望小马哥确认该问题!
PS:正文第二段中所有出现 ~~@CompoentScan~~ 均拼写错误,需要修改为 @ComponentScan
✅ 谢谢 @xkcoding 的反馈,已确认拼写错误并收录~ https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/9
@bilaisheng :
P112页, 【从本次运行结果不难发现,所谓GLIB提升并非是@Bean对象提供的】。 这个地方应该是CGLIB。少了个字母【C】。
✅ 谢谢 @bilaisheng 的反馈,已确认拼写错误并收录~ #5
@bilaisheng :
P113页,正文第二行 【装配也能被关联到“starter”中,这些“starer”提供自动装配的代码及关联的依赖。】
单词拼写错误 第二个双引号中应为【starter】
✅ 谢谢 @bilaisheng 反馈,已确认拼写错误并收录~
159页'(3)部署@StringRepository Bean' 的示例xml代码中,context左边缺少一个‘<’
✅ 谢谢 @yxzjerryfish 反馈,已确认排版错误并收录~
480页 构建泛型事件 整个代码块好像粘错了
✅ 感谢 @liqi19950722 的反馈,已确认代码粘贴错误并记录~
P43页,讨论 JarLauncher 实现时,有这么一段 【当 application.properties 资源位于 FAT JAR 时,实际的 Archive.Entry#getName() 为 /BOOT-INF/classes/application.properties,故符合 entry.getName().startsWidth(BOOT_INT_LIB)的判断,即 isNestedArchive(Archive.Entry) 方法返回true】,经 debug,application.properties 不符合 entry.getName().startsWidth(BOOT_INT_LIB) 的判断(它的父目录是 classes 而不是 lib ),而 isNestedArchive(Archive.Entry) 方法是返回 false 的

✅ 谢谢 @feichangxinfu 的反馈,该问题已在 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-484749074 反馈,实际应该为 BOOT_INF_CLASSES
【前言】部分中的【表达约定】第一行,【本书的讨论内容可能对相同事务出现不同的表述方式】,个人认为应该采用【事物】而非【事务】。 望小马哥思考一下哈。
✅ 谢谢 @landy8530 的反馈,已确认编写错误并收录~
前言 XVIII页,第四行代码其中 “=”右边 new AnnotationConfigApplicationContext(); 其中“igApplicationContext();”部分换行了,这一行不应该注释掉,但是被“//”注释了。

✅ 谢谢 @cabbageXun 的反馈,已确认编写错误并收录~
296页 作为Spring Boot最核心注解的@SpringBootApp lication
应该没有空格 @SpringBootApplication

✅ 谢谢 @old-king 的反馈,已确认排版错误并收录~
130页 英文第一行 Property values ..........by using the @Valueannotation,没有空格 应该是 @Value annotation,
✅ 谢谢 @331829683 的反馈,已确认排版错误并收录~
前言 XIII 页,“表达约定”部分,“本书的讨论内容可能对相同事务出现不同的表述方式。”中的“事务”是否替换为“事物”更为妥当,请马哥斟酌。
✅ 感谢 @jiangshuangjun 的反馈,该问题已在前面被记录,可参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-485239605
95页对3种嵌入式Web容器进行总结,如下表所示,表格中:Undertow的WebServer实现类写成了UndertowWebServer(该类是嵌入式Reactive Web容器实现类),应该修改为UndertowServletWebServer
:star: 感谢 @hulanhui 的反馈,不过此处恰好是讨论 Reactive Web 容器的实现,故没有问题。
106页,倒数第 6 行,“单从日志上观察,组件转配和运行正常”,应为“组件装配”
✅ 谢谢 @liaozan的反馈,已确认编写错误并收录~
89页正文第三段第一行出现ApplicationContext拼写分开的错误。
✅ 谢谢 @miaoo92 的反馈,已确认排版错误并收录~
98页引用第5行,“enable @Component scan on......” 应该为“enable @ComponentScan on......”
⭐️ 谢谢 @miaoo92 的反馈,此处没有问题,援引官方原文,见 https://docs.spring.io/spring-boot/docs/2.0.2.RELEASE/reference/htmlsingle/#using-boot-using-springbootapplication-annotation
98页引用第5行,“enable @Conponent scan on......” 应该为“enable @ConponentScan on......”
ConponentScan-> ComponentScan
⭐️ 谢谢 @liaozan 的反馈,该问题已在 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-485263450 记录
P113正文第6行(不算引入的官方文档),@Condtinal注解写错,应为@Conditional
✅ 谢谢 @redaness 的反馈,已确认编写错误并收录~
p133 正文 第6行 “派生” 注解(如@Server)是不是应该改为 “派生” 注解(如@Service),请核实
✅ 谢谢 @porscheYong 的反馈,已确认编写错误并收录~
p133 正文 第10行,第12行 Annotation @Confiugraion 应为 Annotation @Configuration
✅ 谢谢 @porscheYong 的反馈,已确认拼写错误并收录~
296页 9.1.1上边一段 :尽管...,但官方文档并没有更新,不过也(缺个''无''字?)妨
✅ 谢谢 @RockFishChina 的反馈,已确认编写错误并收录~
p153 倒数二个表格的说明 是否是“配置属性注解如下表示”,而不是 “配属属性注解如下表示”,请确认是否需要改。
✅ 谢谢 @porscheYong 的反馈,已确认编写错误并收录~
178页 simpleMetadataReader 源码对比的图片反了,左侧应该是2.5版本……😄
✅ 谢谢 @alonecong 的反馈,已确认编写错误并收录~
《Spring Boot 编程思想》p15倒数第四行:执行mvn dependency:tree-Dincludes=XXX,需要改为:mvn dependency:tree -Dincludes=XXX,在tree后面需要加空格。
✅ 谢谢 @myejb22 反馈,已确认拼写错误并收录~ 参考 #3 (comment)
p163 第9行 基API 为 BeanDefinition Parser 中间有空格,应改为“BeanDefinitionParser”,请确认。
✅ 谢谢 @porscheYong 的反馈,已确认排版错误并收录~
P68 单词错误
错误单词:Spring IO Platorm
正确单词:Spring IO Platform
✅ 谢谢 @JamesDragon 反馈,已确认拼写错误并收录~
- 15页的查看依赖树的命令有问题,应该是
mvn dependency:tree -Dincludes=org.springframework.*
✅ 谢谢 @InnerDemon 反馈,已确认拼写错误并收录~ 参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-487286394
283页第一段,@ConditionalOn Bean 多了空格,应该为@ConditionalOnBean。
✅ 谢谢 @nosqlcoco 的反馈,已确认排版错误并收录~
补充:283页倒数第1行,“ConditionOnSystem Property” -> 应调整为“ConditionOnSystemProperty”
✅
p240 第四行 Ordered.HIGHT ST_PRECEDENCE 出现空格 应改为 Ordered.HIGHEST_PRECEDENCE
✅ 谢谢 @porscheYong 的反馈,已确认排版错误并收录~
第12页 最上方 “控制台输入内容:”是否应为“控制台输出内容:”
✅ 谢谢 @aaa448579123 的反馈,已确认编写错误并收录~
P43 正文第6行 /BOOT-INF/classes/application.propperties 应为 BOOT-INF/classes/application.propperties

⭐️ 感谢 @flyonsnow 的反馈,仅检查并无此错误
是正文第6行,已补充图片,请小马哥@mercyblitz 再次确认
270页的8.3 Spring条件装配中的“staging”应该是表示预发而不是语法环境
✅ 谢谢 @MoPei 的反馈,已确认编写错误并收录~
166页中间,处理后的packageSearchPath为“classpath*:thinking/in/spring/boot/ ** * /.class” 应该是“classpath*:thinking/in/spring/boot/ ** / *.class”(*和/相邻会消失不见,所以家了空格)
✅ 谢谢 @redaness 的反馈,已确认排版错误(原稿正如你所言)并收录~
@bilaisheng :
P117 路径单词拼写错误 正文倒数第三行 【src/main/resource】 应该为【src/main/resources】 ,resources拼写错误
✅ 谢谢 @bilaisheng 反馈,已确认拼写错误并收录~ 参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/14
P50 第三行 “sun.net.www.proto col.jar.Handler” 应为“sun.net.www.protocol.jar.Handler”,protocol单词多了一个空格
✅ 谢谢 @wallfacers 的反馈,已确认排版错误并收录~
P432页面,11.1.4 这一行 上下篇幅,“事件/监听” ,“事件/监听器模式”,"事件监听器接口",这个字段,有些 带“/” ,有些没带“/” 。可能也不算问题,就是觉得看起来奇怪 。
✅ 感谢 @codingma 的反馈,以上表述是同类事务,后续可添加到在前言 XIII 页中的“表达约定” 中
P507,第二行 "Class Path",常见的描述一般 应该是"CLASSPATH"?
⭐️ 感谢 @codingma 的反馈, 这部分的表达,在前言 XIII 页中的“表达约定” 有提到: 类路径:Class Path、class-path、类路径

P517 这行多了空格。
✅ 谢谢 @codingma 的反馈,已确认排版错误并收录~
@verichenn :
P15 倒数第5行 查看依赖树命令中 tree 与 -Dincludes未分隔开 P36 2.2.3 小节正文第一行java -jar未分隔 P36 2.2.3 小节正文第3行java -jar未分隔 P38 页面文件路径在此工程中没有找到,路径单词拼写也有误 P58 正文第一行 Starter拼写错误 P79 倒数第2行 spring-boot-starter-undertow 在starter前面多了一个空格 P112 倒数3、4行Configuration单词拼写错误
✅ 谢谢 @verichenn 反馈,已确认错误并收录~ 参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/16
@caixingjava :
P58词语错别字倒数第二行,较为繁琐
✅ 谢谢 @caixingjava 反馈,已确认编写错误并收录~
第28页,关于jsonpp的部分,我mac上用brew安装时,执行书中所写的brew install json_pp找不到,执行brew install jsonpp才能成功安装,不知道是书中写错了还是与brew的版本或源有关系。
此外,该页最下面 curl http://127.0.0.1:8080/ | json _pp ,json _pp多了一个空格。
✅ 谢谢 @Darkness463 反馈,已确认排版错误并收录~
P181底部AnnotationAttributesReadingVisitor类的代码贴错了。
这一段的内容是对比2.5.6.SEC03和3.0.0.RELEASE版本AnnotationAttributesReadingVisitor的区别,但是贴的图是3.0.0.RELEASE版本之后的代码。

可以看出书上的代码是继承的RecursiveAnnotationAttributesVisitor类,而在3.0.0.RELEASE中是实现AnnotationVisitor类。(书上的代码竖着拍不清楚,就顺便帮小马哥治治颈椎病吧23333)
✅ 谢谢 @redaness 反馈,已确认排版错误并收录~
P593第四行,多了一个空格
✅ 谢谢 @codingma 反馈,已确认排版错误并收录~
P151,P152总共3处拼写错误,应为`@ComponentScan`
✅ 谢谢 @runyan 反馈,已确认拼写错误并收录~
第12页 最上方 “控制台输入内容:”是否应为“控制台输出内容:”
我觉得是控制台输出内容比较准确,看小马哥怎么考虑吧
⭐️ 感谢 @THyyy 提示,该问题已录入。
P43 正文第6行
/BOOT-INF/classes/application.propperties应为BOOT-INF/classes/application.propperties⭐️ 感谢 @Flyonsnow 的反馈,仅检查并无此错误
是正文第6行,已补充图片,请小马哥@mercyblitz 再次确认
properties拼写没错呀,不是propperties
⭐️ 感谢 @THyyy 的回复,不过这部分描述可能有逻辑问题,我进一步核实。
145页的第九行“不过,‘始作俑者’并非Spring Web MVC,而是JAX-RS(Java REST规范)。其中原委在将Web篇中展开讨论”,在将应该是将在Web篇中展开讨论吧。
✅ 感谢 @loupXing 的反馈,的确存在字符颠倒的问题,已确认编写错误并收录~
p296 正文第三行 最核心注解的 @SpringBootApp lication 在App后有空格,应该改为 @SpringBootApplication p 286 @Conditional 作为 @conditional 条件装配的元注解,是否将第二个的@ 去掉,请核实
✅ 感谢 @porscheYong 的反馈,其中 p296 的错误已在 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-485244323 记录。
p 286 中的“@conditional 条件装配” 可调整为“条件装配” 即可。
406页空格问题

✅ 感谢 @LeeDamon 的反馈,已确认排版错误并收录~
P259,文中的“These mthods” 是指ServletContext的配置方法,它们仅能在ServletContextListener#contextInitialized或ServletContextListener#onStartup方法中被调用。
后面的ServletContextListener#onStartup应该是ServletContainerInitializer#onStartup方法吧,请小马哥确认。
✅ 感谢 @zhongqinzhen 的反馈,已确认编写错误并收录~
P36,第二段话中:
在标准的Java EE WEB应用中,class文件不是存放在WEB-INF/classes目录,而依赖的JAR包不也是存放在WEB-INF/lib目录下的吗?
添加一个正字是否更通顺些。
在标准的Java EE WEB应用中,class文件不正是存放在WEB-INF/classes目录,而依赖的JAR包不也是存放在WEB-INF/lib目录下的吗?
✅ 感谢 @zhongqinzhen 的建议,后续修订版中将会采纳该提议
43页,application.properties的例子好像有问题,不知道是否是我理解有误,源码如下
@Override protected boolean isNestedArchive(Archive.Entry entry) { if (entry.isDirectory()) { return entry.getName().equals(BOOT_INF_CLASSES); } return entry.getName().startsWith(BOOT_INF_LIB); }
而fat jar 中的application.properties的getName().应该为“/BOOT-INF/classes/application.properties” 执行 startsWith(BOOT_INF_LIB)的话会返回true?
还请小马哥解答一下这里 谢谢
感谢 @punisherj 的反馈,正在确认中..
p307 第一行,移除排名类名单,此处读不通。求原文。。
✅ 感谢 @liaozan 的反馈,“移除排名类名单” 应该为“移除排除类名单”
p326 倒数第二行,将制定的自动装配,应为指定
✅ 感谢 @liaozan 的反馈,已确认编写错误并收录~
P10页第一行应用打包成WAR文件或EAR文件应该改为JAR文件
⭐️ 感谢 @MoPei 的反馈,此处是说明 Spring Boot 应用不会像 Java EE,Java EE 应用是打包 WAR 或者 EAR 文件到容器中。
P17页第一部分代码起始的大括号"{"不是在行尾而是另起一行,这个与文中的其他编码风格不一致,应该也不符合阿里对外发布的Java编程规范的风格
⭐️ 感谢 @MoPei 的反馈,这个无法和阿里的规范一致,因为它是通过 Maven 插件生成的,来自于源码模板,不过关于代码风格,老外不一定会认同。
文中多处的出现Class Path,是不是应该修改问Classpath,https://en.wikipedia.org/wiki/Classpath_(Java)
⭐️ 感谢 @MoPei 的反馈,该部分的解释已在前文说明,请参考: https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-487284948
P98 第二行 A single@SpringBootApplication 中single和@之间缺少了一个空格
⭐️ 感谢 @MoPei 的反馈,该错误已被录入,请参考: https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-485218187
P98 第二段引用上方第二行,@EnabeAutoConfigra tion由于排版问题单词被割裂了
⭐️ 感谢 @MoPei 的反馈,并未发现以上问题,能否截图指明否?
P115页倒数第三行spring-boot-autoconfigure是Spring Boot核心模块(JAR) 这个JAR是不是应该改成module更合适
⭐️ 感谢 @MoPei 的反馈,这里的 JAR 并非是翻译,而是提醒读者为 JAR 文件。
P130页外部化配置中列出了Sping Boot官方文档中的17种,但是小马哥不是一直说是18种吗?既然SpringBoot官方文档有误,小马哥在书中为什么没有修改呢?
⭐️ 感谢 @MoPei 的反馈,我所说的 18 种,将在《运维篇》中看到,争取本月完稿,在双十一前和大家见面~
P131页引用段落中的you can have an application. properties多了一个空格,以下截图是Sping Boot官方文档的截图内容

✅ 感谢 @MoPei 的反馈,已确认排版错误并收录~
P39页,第二行 GroupId 的 org.springframe work.boot 中 work 前面多了一个空格
⭐️ 感谢 @bfchengnuo 的反馈,该问题已被记录~
请参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-484768492
p90.p91控制台输出中,并未看到webserver实现类为undertowWebServer的字样,不知是否为控制台内容截取缺了些内容?亦或是我理解的有问题。 看了后面内容发现“当前WebServer实现类为...”是输出内容。不知这样排版是否不太方便辩识控制台内容
⭐️ 感谢 @aaa448579123 的反馈,该问题已被记录~ 请参考,https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/8#issue-435356782
P245
正文内容第三行段落
其中,@Ipmort处理方法......中的@Import拼写错误! 补充:正文第五行出现同样错误!
✅ 谢谢 @JamesDragon 的反馈,已确认拼写错误并收录~
P259,文中的“These mthods” 是指ServletContext的配置方法,它们仅能在ServletContextListener#contextInitialized或ServletContextListener#onStartup方法中被调用。
后面的ServletContextListener#onStartup应该是ServletContainerInitializer#onStartup方法吧,请小马哥确认。
✅ 感谢 @zhongqinzhen 的反馈,已确认编写错误并收录~
单词拼写错误
正文中的
ServletContextListener#contexInitialized的contexInitialized单词缺少t,应为contextInitialized
✅ 谢谢 @JamesDragon 的反馈,已确认拼写错误并收录~
P277
正文内容:Profile("Java7")所标注的LambdaCalculatingService并未注册到Spring应用上下文中,......
错误指正:Profile("Java7")所标注的应该是类名:
IterationCalculatingService迭代器实现类
✅ 谢谢 @JamesDragon 的反馈,已确认拼写错误并收录~
P61 spring-boot-parent也可以直接作为parent,下面的配置好像少了<parent标签
⭐️ 感谢 @liangliangchen 的反馈,此处应该无误
p517 正文内容 “本过程仅执行一行语句”这段,数下来第第7行 #createEnvironm ent()创建 出现空格,应为 #createEnvironment()创建。
⭐️ 感谢 @porscheYong 的反馈,该问题已被记录~ 请参考,https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-487285635
P153 @Import的起始版本可能有问题,在spring-conetxt 2.5.x中没有找到,spring 3.0才找到的 @Conditional 也是在3.0中没有找到,在4.0中才找到的
✅ 谢谢 @wallfacers 的反馈,已确认错误并收录~
P329, "否则,当自动装配类出现在..." 这里应该是自动装配类未出现在自动装配的配置资源中才会走asm读取类注解的元信息吧。还有一些类名中间被空白断开的可能是排版格式问题
⭐️ 感谢 @huitu1991 的反馈,该问题暂不更改,因为书中多出采用此编排格式
第15页第二行,“...增加spring-boot-starter -web” starter -web中多了个空格。

✅ 谢谢 @tuablove 的反馈,已确认排版错误并收录~
第15页倒数第四行,命令少个空格,应该为“mvn dependency:tree -Dincludes=org.springframework.*
”

⭐️ 谢谢 @tuablove 的反馈,该问题已被 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-493670554 记录
马哥,第 75 页,“除此之外,Tomcat Maven 插件打包后的 JAR 或 WAR 文件属于非 FAT 模式,因为归档文件存在压缩的情况,所以 Spring Boot Maven 插件 spring-boot-maven-plugin 采用零压缩模式” 中的 “所以 Spring Boot Maven 插件...” 应为 "而 Spring Boot Maven 插件...",请马哥斟酌
✅ 感谢 @jiangshuangjun 的建议,描述将由“所以”,调整为“然而”。
P130,第四行 using the @Valueannotation 应为 @Value annotation
⭐️ 谢谢 @tuablove 的反馈,该问题已被 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/3#issuecomment-485245434 记录
建议:小马哥,能否在后续的版本中,简单的解释下"完全模式"和“轻量模式”,该概念出现在P246页中
感谢你的建议,这块我会和编辑沟通,首先将会在公众号“次灵均阁” 中解释
@verichenn:
P239 第五行 context:annotation-config中间多了一个空格
✅ 感谢 @verichenn 反馈,已确认排版错误并收录~ 参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/22#issue-440435607
@verichenn:
P250 【8.2.1小节】正文第一行 code-based中间多一个空格
✅ 感谢 @verichenn 反馈,已确认排版错误并收录~ 参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/22#issuecomment-489479102
@verichenn:
P216 理论上,运行结果... 行 txManager2拼写有误
✅ 感谢 @verichenn 反馈,已确认代码拼写错误并收录~ 参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/22#issuecomment-489622851
@verichenn:
P251 最后一段文档引用 第一行 code-based 多一个空格;第三行...implementation of this interace... interace 应该是 interface (官方文档笔误?)
✅ 感谢 @verichenn 反馈,估计是当时官方的拼写错误,目前 5.0.6.RELEASE 的文档做出了修正。 参考 https://github.com/mercyblitz/thinking-in-spring-boot-samples/issues/22#issuecomment-489906601