Spring Boot之初体验篇

in Java with 0 comment

自之前写过的Laravel源码分析受到不错的反响之后,也打算再开启一个新的篇章,我本人接触Java也有一段时间了,而正好在公司准备一次Spring Boot的内部技术分享,遂起意写一个Spring Boot的系列。

而与Laravel系列不同的是,我不再从细的方面着手,而是从「主干层面」来帮助大家理清其中的层层脉络。至于为什么不再探究细节?我想从两个方面来解释,首先,要想讲清楚Spring Boot不得不牵扯到Spring相关的其他组件,而整个庞大的体系并非一朝一夕所能拜读完成;其次,我认为我们在接触一个新的技术或者事务时,一个在我看来比较正确的方式应该是从大到小、从面到点的过程。此外,这个系列我会“反其道而行之”,从大胆猜测到小心验证,站在设计者的角度思考他会如何设计,到最后校验我的想法是否正确。

当然,需要说明的是,由于我本人也是一边学习一边总结,在梳理的过程中难免会遇到遗漏或写错的地方,如有不对,还望不吝指正。

Spring Boot 是什么

官方给出的定义是这样的:

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

在还没有Spring Boot之前,我想很多Java程序员都会非常痛苦,因为光配置就要花上不少的时间。因此这也是我此前一直不太难理解的一点,我一直在强调的一个观点就是,一门语言,或者是一个工具,它的最终落脚点应该在「人」身上,应该让每个人开发起来更加的便捷。设计复杂的场景和语法糖往往会得不偿失。通过观察众多语言的发展趋势,我们也不难发现,语言对开发者而言是一个越来越简单而且方便的历程。

另外,当我们在依赖一些配置的时候往往都会有这样的困惑,为什么没有一个框架自动帮我们来根据我们的需要自动载入指定的配置?比如我在maven引入了某个package,那么系统自动帮我载入,对于我而言,不需要对配置再次设计和开发。

而以上的种种,正是Spring Bootfeatures,也正是它诞生的原因所在。

好了,以上便是我对这个篇章的介绍以及对Spring Boot的一些简单看法,在接下来的一章中,我会一步步与大家一起分析,内嵌Web容器是如何实现的。

Responses