1.Spring是什么?
============
Spring是一个容器框架,用来装javabean(java对象),中间层框架可以起一个连接作用。
一句话概括:Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。
1.1什么是控制反转IOC?
-
在谈反转之前,我们先来谈一下“正转”,正转即在任何一个有请求作用的系统当中,至少需要有两个类互相配合工作,例如在一个A类中,希望去操作B类,那么需要在A类中new一个B类的对象实例,例如以“我”充当一个入口类,我每次吃饭的时候都需要买一双一次性筷子,即每一次使用都需要new一次,在这样的关系中,是“我”(调用者)每次都要主动去买一双一次性筷子(每次使用都需要new一下),然后筷子才能到我手上,是我控制了筷子。这种情况就是正转。
-
反转就是,我去超市买一双筷子,注意这双筷子不是一次性的,我把这双筷子放到一个容器里(在Spring中称其IOC容器),然后以后需要筷子的时候,就跟容器说:IOC,我想要筷子(向容器发出请求),筷子就会“注入”到我手上,在这个过程,我不再是控制方,而是成为一名请求者(本身还是调用者),依赖于容器给予资源,控制权落到了容器上,这就是控制反转。
1.2什么是面向切面AOP?
一句话概括:在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想。
例如:有三个人,儿子,爸爸,爷爷,自然就是儿子继承爸爸,爸爸继承爷爷,这三者一生都会经历入学,工作,结婚等阶段,而现在我们需要记录这三者的每个人生阶段发生的时间节点,只能在每个阶段发生时刻记录一下,这就是最简单的日志功能。根据面向对象(OOP)的思想,必然会导致代码的重复性,并且以“入学”为例,“入学”应该只需要知道入学本身的步骤,比如:体检,面试,交学费。而不是: 记录开始时间,体检,面试,交学费,记录结束时间。
日志功能对于各个函数而言都应该是透明的,函数本身只需要实现核心关注点即业务逻辑本身,这些散落在各个方法核心功能上,却又与核心业务逻辑无关的功能,便是横切关注点。AOP的出现就可以把那些与业务逻辑无关的,却被各个业务模块大量调用的逻辑给封装起来,可以动态地将代码切入到类的指定方法、指定位置上,进而便于减少系统的重复代码量,并且能够降低模块间的耦合度,并有利于未来的扩展和维护,降低了维护成本,使各个函数本身只关注了核心业务逻辑。
2.Spring有什么用?
=============
Spring可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得非常的优雅和简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/329acb2f2d748294436021bb93e07c8d.jpeg)
最后
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
最新整理面试题
上述的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题
最新整理电子书
最新整理大厂面试文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
,也希望大家多多支持。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!