Spring做为Pivotal所维护的一个开源框架,相信很多程序员在学习Spring的时候都会一筹莫展。其实Spring常规的主要内容就是IOC,AOP,DI还有包括可能会出现的一些问题。比如Spring三级缓存以及循环依赖。不过,当面试官让你你谈一谈对Spring的理解。可能大部分人就会束手无策。“他不就是一个基础框架吗?”还能有什么理解?


实际上,在我看来,Spring就是做了一个外包公司的工作。为什么这样理解?

spring这个公司怎么盈利 spring公司怎么赚钱_编程语言

Spring的核心功能就是简化企业级应用开发。而这个简化的过程,他用了非常多的手段。例如:

解耦:为了完成这个功能。他会有一个容器的概念,而这个容器,将它设想为一家外包公司。原本是公司与项目直接进行耦合,而现在多了个第三方,公司与项目之间没有耦合了,耦合的是第三方。

spring这个公司怎么盈利 spring公司怎么赚钱_spring这个公司怎么盈利_02

而在我们的java语言当中,由于缺少了欠缺属性、事件、多重继承功能。所以,如果要在Java程序中实现一些面向对象编程的常见需求,只能手写大量胶水代码。Java Bean正是编写这套胶水代码的惯用模式或约定。其实,这也算是模板模式思想的一种设计体现。但并不是说他就是模板模式。比如get,set等方法。

那么这个时候我们Spring容器本质上是管理这些Bean对象的。他是去生成以及创建这些对象的。那么怎么去管理呢?

这个时候可以创建一个名为BeanFactory的容器。用来生产与创建相关的对象。这不就是一个外包公司所做的事情吗?

在大部分互联网公司当中,也充分利用了这样的逻辑,为了减轻负重,会将大量的重复劳动力推到外包公司手上,甚至将项目整包出去。所以,甲方公司不用考虑项目基本完成之后的工作,只需要留下其中一两个人做老项目的维护,其他人的裁撤是不需要劳动成本的,比如赔付N+1。

来说说AOP作为Spring框架的核心思想,类比起来,无非就是为了让Spring能够适用更多的甲方公司的通用功能模板。

spring这个公司怎么盈利 spring公司怎么赚钱_编程语言_03

最后包括DI作为实现IOC实现的方式与手段,实际上也可以类比为:外包公司为了适配人员的流动性所设计的一个方案。

作为技术人,最需要的是对技术的个人理解,在与面试官博弈的时候,如果对某个技术能够与面试官攀谈技术的深度和理解能力,相信要拿住Offer将会非常轻松。