Java
自之前写过的 Laravel
源码分析受到不错的反响之后,也打算再开启一个新的篇章,我本人接触 Java
也有一段时间了,而正好在公司准备一次 Spring Boot
的内部技术分享,遂起意写一个 Spring Boot
的系列。
而与 Laravel
系列不同的是,我不再从细的方面着手,而是从「主干层面」来帮助大家理清其中的层层脉络。至于为什么不再探究细节?我想从两个方面来解释,首先,要想讲清楚 Spring Boot
不得不牵扯到 Spring
相关的其他组件,而整个庞大的体系并非一朝一夕所能拜读完成;其次,我认为我们在接触一个新的技术或者事务时,一个在我看来比较正确的方式应该是从大到小、从面到点的过程。此外,这个系列我会“反其道而行之”,从大胆猜测到小心验证,站在设计者的角度思考他会如何设计,到最后校验我的想法是否正确。
当然,需要说明的是,由于我本人也是一边学习一边总结,在梳理的过程中难免会遇到遗漏或写错的地方,如有不对,还望不吝指正。
官方给出的定义是这样的:
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
其实在我看来, Spring Boot
是一个广义上的「脚手架」,它并非说可以通过一个命令行帮我们生成一个项目(其实狭义的 Spring Boot
脚手架还真有...),但是它可以像一个盒子,帮我们把许多东西都打包好了,我们不需要再去关心各种依赖,各种配置之类的。
在还没有 Spring Boot
之前,我想很多 Java
程序员都会非常痛苦,因为光配置就要花上不少的时间。因此这也是我此前一直不太难理解的一点,我一直在强调的一个观点就是,一门语言,或者是一个工具,它的最终落脚点应该在「人」身上,应该让每个人开发起来更加的便捷。设计复杂的场景和语法糖往往会得不偿失。通过观察众多语言的发展趋势,我们也不难发现,语言对开发者而言是一个越来越简单而且方便的历程。
另外,当我们在依赖一些配置的时候往往都会有这样的困惑,为什么没有一个框架自动帮我们来根据我们的需要自动载入指定的配置?比如我在 maven
引入了某个 package
,那么系统自动帮我载入,对于我而言,不需要对配置再次设计和开发。
而以上的种种,正是 Spring Boot
的 features
,也正是它诞生的原因所在。
好了,以上便是我对这个篇章的介绍以及对 Spring Boot
的一些简单看法,在接下来的一章中,我会一步步与大家一起分析,内嵌 Web
容器是如何实现的。
本文由nine 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Mar 30, 2019 at 11:49 pm