写在前面:技术常新,思想常存。

Spring全家桶过于庞大,学习时难以抓住重点,希望通过此文章,让大家更好地去学习这一框架技术。
Spring有两大内功:IoC容器和AOP。这两个东西是不管什么时候都不会改变的。即便今天有了Spring Boot,也是需要了解的。
Spring原理总结
这个图是今天的软件项目基本都会基于的模式。即MVC。最左边的用户,最终是要获取/修改最右边的数据库里的数据。中间不管通过什么语言或什么方式,基本都可以分为三层,表示层如果不是jsp换成app都没有什么问题,业务逻辑层称为business/service都可以,模型层负责和数据库进行交互,提供数据给业务逻辑。
Spring原理总结
Spring IoC干了什么工作?它提供了一个容器,这个容器其实就是一个工厂,帮我们生产对象的,也就是上述三层各有什么对象,统一放到容器里边管理。这样做的好处是:解开层与层,对象和对象之间的耦合。让开发表示层的人不用了解业务逻辑,开发业务逻辑层的人,不用了解模型层。这其实就是软件开发架构里最核心的概念。通过这样的方式来提高整个软件的可维护和可复用性。(Linux系统课会讲到怎么使得软件高可用和高可靠)总之,纵向被切割开来了。可根据实际情况切割得更细。在实际公司里边就可以分成表示层组,业务逻辑组,模型组。他们相互间不需要什么协作,基本以文档或接口就能开工。
Spring原理总结
AOP干什么呢?AOP是横向地去切,比如说当表示层和业务逻辑层都要做日志时,就形成一个切面。切割地越细,可复用性和可维护性就越高。某一小块有问题,更改这一小块就行了。

我们在学框架时,真正需要理解和学会的是图里面的概念。技术层面常常会发生改变。

十年前学Spring,大部分是基于XML配置,学了将近半个月去了解各种配置怎么写,才能使软件跑起来。但很快,注解就开始流行起来,再过一两年,基本不用XML了。紧接着就出现了Spring Boot,几乎不需要配置了。

当然,不实现思想不能深刻理解。但实现不是最重要的。

相关文章: