├── .gitignore ├── README.md ├── images ├── 12.jpg ├── 140.jpg ├── 147.jpg ├── 97.jpg ├── DASH.jpg ├── ioc.png ├── pom-with-spring-boot-starter-scala.jpg └── web-api-req-res.png ├── 勘误.md └── 勘误.md.html /.gitignore: -------------------------------------------------------------------------------- 1 | .classpath 2 | .project 3 | webapp/WEB-INF/classes/ 4 | lib_managed/ 5 | project/target/* 6 | project/project/target/* 7 | project/build/target/* 8 | project/boot/* 9 | project/plugins/lib_managed/* 10 | project/plugins/project/* 11 | project/plugins/target/* 12 | project/plugins/src_managed/* 13 | target/ 14 | .idea/ 15 | .idea_modules/ 16 | *.iml 17 | .DS_Store 18 | out/ 19 | logs/ 20 | *.log 21 | .settings/ 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 《SpringBoot揭秘》勘误项目 2 | 3 | 纸质出版因为牵扯的环节和周期相对较长,作者自身见解也难免偏颇,故此, 在本书出版之后,如果各位读者有疑问,建议,改进等反馈,可以在这个项目新建issue, 我会适时的选择给予答复, 当然,笔者个人难免时间和精力有限, 更希望大家可以通过issue展开讨论,互相切磋和解答疑问 ^_^ 4 | 5 | GL & HF :wink: 6 | 7 | > TIPS 8 | > 9 | > BTW. 作者关于技术、管理与商业相关的最新内容,现在都收录于「福强私学」()。 10 | 11 | --- 12 | 13 | >>> :point_right: [Create New Issue Right Now !](https://github.com/fujohnwang/unveil-springboot-feedbacks/issues/new) 14 | 15 | 16 | --- 17 | 18 | # 第一版重点勘误(笔者自己做的全部勘误[看这里](勘误.md)) 19 | 20 | # 关于源码 21 | 22 | 23 | 24 | > 其实这本书本身就不是入门级的, 即使是源码,也不会是可以直接运行的, 最多只是为了演示原理。 25 | -------------------------------------------------------------------------------- /images/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fujohnwang/unveil-springboot-feedbacks/681a100338b4423feb80bd2210cd98d6341b6977/images/12.jpg -------------------------------------------------------------------------------- /images/140.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fujohnwang/unveil-springboot-feedbacks/681a100338b4423feb80bd2210cd98d6341b6977/images/140.jpg -------------------------------------------------------------------------------- /images/147.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fujohnwang/unveil-springboot-feedbacks/681a100338b4423feb80bd2210cd98d6341b6977/images/147.jpg -------------------------------------------------------------------------------- /images/97.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fujohnwang/unveil-springboot-feedbacks/681a100338b4423feb80bd2210cd98d6341b6977/images/97.jpg -------------------------------------------------------------------------------- /images/DASH.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fujohnwang/unveil-springboot-feedbacks/681a100338b4423feb80bd2210cd98d6341b6977/images/DASH.jpg -------------------------------------------------------------------------------- /images/ioc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fujohnwang/unveil-springboot-feedbacks/681a100338b4423feb80bd2210cd98d6341b6977/images/ioc.png -------------------------------------------------------------------------------- /images/pom-with-spring-boot-starter-scala.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fujohnwang/unveil-springboot-feedbacks/681a100338b4423feb80bd2210cd98d6341b6977/images/pom-with-spring-boot-starter-scala.jpg -------------------------------------------------------------------------------- /images/web-api-req-res.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fujohnwang/unveil-springboot-feedbacks/681a100338b4423feb80bd2210cd98d6341b6977/images/web-api-req-res.png -------------------------------------------------------------------------------- /勘误.md: -------------------------------------------------------------------------------- 1 | % 《SpringBoot揭秘》勘误列表 2 | % 王福强 - fujohnwang AT gmail DOTA com 3 | % 2016-05-24 4 | 5 | 6 | 7 | 8 | # 页3 9 | 10 | 第三段, “从而负责不同功能的研发人员就可以..." , 将开头的”从“删除, 变为”而负责不同功能的研发人员就可以...“ 11 | 12 | 13 | 第四段, 14 | 15 | > 每一个功能或者少数相近的功能作为单一项目开发完成后将作为一个独立的服务单元进行交付 16 | 17 | 句式太长, 加逗号分割为: 18 | 19 | > 每一个功能或者少数相近的功能作为单一项目开发完成后, 将作为一个独立的服务单元进行交付 20 | 21 | 22 | 23 | 24 | 25 | # 页6 26 | 27 | 最后一段, ”(日本,国铁改革后也证明...)“, 中间没有逗号, 应该是“(日本国铁改革后也证明...)” 28 | 29 | 30 | # 页12 31 | 32 | 插图应该如下: 33 | 34 | ![](images/ioc.png) 35 | 36 | 而不是: 37 | 38 | ![](images/12.jpg) 39 | 40 | 变成了两个都是DI 41 | 42 | # 页14 43 | 44 | > 基于JavaConfig方式的依赖关系绑定描述基本上映射了最早的基于XML的配置方式 45 | 46 | 句式太长,中间加逗号分割为: 47 | 48 | > 基于JavaConfig方式的依赖关系绑定描述, 基本上映射了最早的基于XML的配置方式 49 | 50 | 51 | # 页26 52 | 53 | 第三段, 54 | 55 | > 最“肤浅”的扩展或者配置是SpringApplication通过... 56 | 57 | 润色为: 58 | 59 | > 最“肤浅”的扩展或者配置手段,要属SpringApplication通过一系列设置方法(setters)开放的定制方式 60 | 61 | # 页30 62 | 63 | > SpringApplicationRunListener是一个**只有**SpringBoot应用的main方法执行过程中接收不同执行时点事件通知的监听者 64 | 65 | 变更为: 66 | 67 | > SpringApplicationRunListener是一个**只在**SpringBoot应用的main方法执行过程中接收不同执行时点事件通知的监听者 68 | 69 | 70 | --- 71 | 72 | > 即使SpringBoot默认也只是实现了一个... 73 | 74 | 润色为: 75 | 76 | > 即使是SpringBoot, 默认也只是实现了一个... 77 | 78 | 79 | # 页32 80 | 81 | 第二段(列表项2)括号中的内容, 82 | 83 | > (以下代码是为SpringBoot默认注册的ApplicationListener配置) 84 | 85 | 多了一个“为”, 需要删掉: 86 | 87 | > (以下代码是SpringBoot默认注册的ApplicationListener配置) 88 | 89 | # 页39 90 | 91 | > logging.config=/{some.path.you.defined}/any-logfile-name-I-like.log 92 | 93 | 变更为: 94 | 95 | > logging.config=/{some.path.you.defined}/logback.xml 96 | 97 | 98 | 99 | 另外, “注意”部分的内容中, 100 | 101 | > `logging.file`和`logging.path`来自定义日志文件的名称和存放路径 102 | 103 | 润色为: 104 | 105 | > `logging.file`和`logging.path`来自定义日志输出文件的名称和存放路径 106 | 107 | # 页40 108 | 109 | > 当前项目下运行`mvn spring-boot:run`就可以直接启动一个使用了嵌入式tomcat服务请求的web应用 110 | 111 | 润色为: 112 | 113 | > 当前项目下运行`mvn spring-boot:run`, 就可以直接启动一个使用了嵌入式tomcat服务**web**请求的web应用 114 | 115 | 添加了逗号分隔,以及**服务请求** -> “**服务web请求**” 116 | 117 | 118 | # 页47 119 | 120 | > 就不单单是单一部署在应用启动的之前直接执行一次migration脚本那么简单了 121 | 122 | 润色为: 123 | 124 | > 就不单单是单一部署**结点**在应用启动之前,直接执行一次migration脚本那么简单了 125 | 126 | 1. 添加了“结点”, 127 | 2. 删除了“启动的之前”中的“**的**”, 128 | 3. 添加了逗号分隔断句 129 | 130 | 131 | # 页51 132 | 133 | 最后一段的注释中: 134 | 135 | > 某个模板里面因为引用了某个公司的css资源,因未知原因可能导致页面加载缓慢, 136 | 137 | 润色为: 138 | 139 | > 某个模板里面因为引用了某个**G**公司的css资源,因“未知原因”可能导致页面加载缓慢, 140 | 141 | 添加了“G”和“未知原因”的引号, 用于突出隐喻 142 | 143 | 144 | # 页58 145 | 146 | > 而安全确实非功能性需求 147 | 148 | 应该是: 149 | 150 | > 而安全**却是**非功能性需求 151 | 152 | --- 153 | 154 | > 零零散散点和线上落实的一些应用安全防护已经算很不错的了 155 | 156 | 润色为: 157 | 158 | > 零零散散点能在线上落实一些应用安全防护已经算很不错的了 159 | 160 | # 页59 161 | 162 | > 我们到底应该是为了良好的扩展和组合**型**而将组件拆分的精细一些 163 | 164 | “组合型”, 错别字, 应该是“组合**性**” 165 | 166 | 167 | # 页74 168 | 169 | 第二个列表项中,`management.address=127.0.0.1`排版上缩进对齐一下更好, 比如对齐在方块儿的后面 170 | 171 | 172 | # 页86 173 | 174 | 代码中, 175 | 176 | > private String domain = "com.wacai.lifecycles"; 177 | 178 | 变更为: 179 | 180 | > private String domain = "com.keevol.lifecycles"; 181 | 182 | 183 | 184 | # 页93 185 | 186 | 插图5-2配错了, 跟图5-1几乎一样,应该是下图: 187 | 188 | ![](images/web-api-req-res.png) 189 | 190 | 191 | # 页97 192 | 193 | ![](images/97.jpg) 194 | 195 | 下面那部分代码跟上面是两段独立的代码, 196 | 197 | 一个是中间加大分隔的空间,另一个是需要跟public对齐 198 | 199 | # 页102 200 | 201 | > @ComponentScan("com.wacai.springboot.webapi.errors") 202 | 203 | 改为: 204 | 205 | > @ComponentScan("com.keevol.springboot.webapi.errors") 206 | 207 | 208 | 209 | # 页123 210 | 211 | > 外部化后的发布脚本将集中协调docker基础设施, 要发布的微服务上下文信息以及其它中间步骤 212 | 213 | 润色为: 214 | 215 | > 外部化后的发布脚本,将集中协调docker基础设施以及要发布的微服务上下文信息和其它中间步骤 216 | 217 | --- 218 | 219 | 220 | > 将微服务项目与docker挂钩的唯一纽带也仅仅是一个模板化、标注化后的Dockerfile 221 | 222 | 改为: 223 | 224 | > 将微服务项目与docker挂钩的唯一纽带也仅仅是一个以模板化标准化后的Dockerfile 225 | 226 | 注意没有顿号 227 | 228 | # 页126 229 | 230 | > HTTP配合DNS或者DNS-SD或许是当下最有产品“范儿”的普适方案了 231 | 232 | 加逗号断句: 233 | 234 | > HTTP配合DNS或者DNS-SD,或许是当下最有产品“范儿”的普适方案了 235 | 236 | # 页140 237 | 238 | “统一性设计”改为“**一致性的设计**”可能更好些 239 | 240 | 另外, 下图中缩进一个排版更贴切些: 241 | 242 | i![](images/140.jpg) 243 | 244 | 245 | 246 | # 页147 247 | 248 | ![](images/147.jpg) 249 | 250 | 排版错位, Dash应该在下一行开头 251 | 252 | # 页154 253 | 254 | 第一句,变为: 255 | 256 | > 如果将我们的spring-boot-starter-scala也加入进去,大家在创建项目的时候不就可以连pom.xml中的配置都不用写了吗? 257 | 258 | 259 | 这一句谁动过, 我原稿上不是印刷上那句话。 260 | 261 | # 页155 262 | 263 | > groupId: com.wacai.springboot 264 | 265 | 变为: 266 | 267 | > groupId: com.keevol.springboot 268 | 269 | 270 | 271 | # 页156 272 | 273 | 插图6-5替换为: 274 | 275 | ![](images/pom-with-spring-boot-starter-scala.jpg) 276 | 277 | 主要与第155页的变更相对应。 278 | 279 | 280 | # 页175 281 | 282 | "很多产品(...)只有一个打动..."这句原稿不是这么写的, 改后也不通顺, 在现在打印的版本上改, 将“只有”变为“只要有”更通顺些。 283 | 284 | 285 | 286 | # 页184 287 | 288 | > 起到了很好的抽象和防火墙效果 289 | 290 | 改为 291 | 292 | > 起到了很好的抽象和防火墙的作用 293 | 294 | # 页185 295 | 296 | > 一颗临风玉树 297 | 298 | 错别字, 改为: 299 | 300 | > 一棵临风玉树 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | --------------------------------------------------------------------------------