00:00
嗯,来来,接下来我们就正式给大家去讲解一下这个spring框架,那么首先呢,我们先来看一下诶,Spring框架的一个概述啊,给大家去说一下point到底是一个什么来吧,那我们一起来看,呃,首先呢,Point它是一个开源框架啊,就它既是一个框架,而且呢,它还是一个开源的。对吧,哎,之前呢,跟大家研究过这个开源这两个字是吧?啊,就是我们不仅要知道什么呀,它是免费的是不是啊,而且呢,你要更看重的是什么呀,对我们什么呀,更有利的一些地方就是我们是可以啊阅读到人家这个spring本身的这个源代码的啊,这个对于我们来说是很重要的,能听懂吧,那么我们既然能读到它这个底层的这个源代码,那么也就意味着我们可以更好的去理解到这个spring它是怎么做出来的,以及它底层那些什么设计是怎么设计出来的。
01:00
啊,再一个将来我们到实际的这个企业里面开发的时候,我们就可以结合上他的这个源代码,再结合上我们实际的一个业务,重新把这个框架给它作为一个封装,啊这个就是那个好多企业里面都会说啊,面试的时候说啊,你们用什么框架呀?啊企业里面这个面试官就会说,我们用的是自己封装的一个框架。对吧,啊,经常会遇到这样的啊,那其实这个时候你也不用太去担心啊,只要你学会我们这个课堂上的这几个框架,他就算再怎么去封装这个框架也都逃不开,诶这是一个框架理解吧,他基本上他他不可能很少会说,诶我从零开始写,把这个框架给它写出来很少的,他基本上都是什么,在一些诶已有的这个框架的基础之上,然后呢,结合上自己的一些业务呢,重新给他需要做一个封装,然后呢,就是对于他们这个公司所做的这个业务来讲,就是使用起来更加的方便一点。啊,是这个样子的啊,这个大家要了解一下,那么这就是一个开源啊,它的一个好处,好,再来往下看,呃,它是为简化我们企业级开发而生的,什么叫做企业级开发呢?
02:14
简化知道吧,啊,简化你要也不知道啊,这课就没得讲了是吧?企业级开发是什么意思啊,企企业应啊,就是企业里面的应用对吧?啊叫做企业级开发啊,那我也会我也会反应。对不对啊,你这翻译个啥,你这是是不是啊,什么样的企业应用呢?来注意大家所学的这个Java Java,哎,它分为javaeva Java,还有一个叫做什么me是吧?啊那个东西现在还用吗。啊,不用了啊,其实也在用啊,就是这个,你可以把它简单的理解为就是我们现在的那个安卓啊,可以这么去理解的哈,好,那么其实我们这个企业级开发表达的是什么意思呢?就是我们的Java意义能明白吧,来你去看一下这个Java意它的这个官方的解释,它就是一个企业级开发,企业级应用,所以说呢,这款破呢,它就是专门为简化JAVA11的开发而生的。
03:19
听懂这个意思了吧?啊,如果说我使用的是C语言,我能用po吗?啊,对不起,用不了啊,能听明白这个意思吧,哎,它是可以认为它就是为我Java而生的啊,那么如果你使用了这个通以后啊,我们的随便一个Java病啊,什么样的Java病呢?就是一个很普通的一个Java类,就是我们经常去写的那个什么userr啊,什么employee啊,什么department啊,像这种类我们都可以把它称之为是一个Java病,它就可以实现很多啊以前只能靠EGB才能实现的功能,好那么这个地方我们提到了一个已经被淘汰,已经过时的一个技术啊,叫做这个EGB,呃,这个技术是什么?在破之前的话,如果你想去实现某一些功能,那么你可能要用到这个GB啊,但是呢,有了spring以后呢,那么基本上这个EG力就已经很少去使用了,为什么呢?因为对于一个同样的一个功能来讲,这个E帧力呢,它需要通过更加繁琐的一些配。
04:19
配置和一些什么更加复杂的代码,我才能去实现,而放到我们这个spring来,放到这个spring里面来说的话,那么你可以很简单的就能去实现的一个功能,而且你写出来这个代码是非常的非常什么优雅啊,非常什么简洁的,这就是我们spring啊,它的这个企业级开发啊。能听明白吧,啊,那这个EGB这个东西呢,大家不用去。了解了对吧,因为他本身呢,就是已经被淘汰的一个东西了啊,现在呢,我们啊,很少会有人去使用这个1GB,除非是那种以前很老的那种项目啊,他在使用这个EGB,但是呢,现在可能要对这个项目做一些维护,做一些升级,那么可能你还得去了解一下这个东西,但如果说你要做的是一个新的项目。
05:06
没人会产生这个GB的,听懂这个意思了吧?OK,好,再来往下看啊,这一句话大家必须得把它记住,它是一个IOC,和a op的一个容器框架啊,那么稍微更精确一点,就是一个IOC容器和一个a opoc面向切面编程的一个框架。那么现在的话呢,我没有把它具体的给大家做一个解释,因为现在我解释你也听不懂,你就先把这六个字母记住,一个是IOC,一个是啊,A op啊,这两个东西大家必须得记住,为什么呢?因为你学习spring,其实就是学习这六个英文字母。能明白吧?啊,我们的spring的讲解就是围绕着loc和a op来进行讲解的,那么这两个东西也是我们spring整个家族里面最核心也是什么最基本的一些什么功能,如果说你连这个东西都学不会,那么你是没有办法去学习spring更加高大上的一些东西了,能听懂这个意思吧,OK,说出了这是我们啊最核心啊,也是最基础的,我们必须要把它学会了,就跟大家学习Java一样,你首先得学习Java SE,如果说你Java SE你都没有学,你直接学Java e,那肯定是不行的,能听懂这个意思吧?啊,说错了,这个大家一定要注意,很重要啊,Loc和LPOK啊,那么这个大家先把它记住啊,先把它记住,下一个再来看一下,那么你这个SPA有什么好的地方呢?啊,给大家简单的列举了几个,首先第一个它是一个非侵入式的一个框架。
06:40
啊,什么叫做非侵入式啊,那么我们就得去给大家去讲一下这个侵入这个东西是吧?啊,大家有理解过的吗?啊,怎么去啊理解这个侵入或者是不侵入呢?那么你就看一下你写的这个应用,就是你基于point啊,或者说你基于某一个技术,你所开发的这个应用有没有耦合于你所使用的这个技术。
07:06
啊,那么再简单一点,就是说,比如说我现在使用的是support这个框架,那么我在去完成某一些功能的时候,它有没有强制性的要求我们去实现一些它的接口,或者说去继承一些它的类,如果说有,那么这就是一个侵入式的,听明白了吧,那也就意味着你写的这个代码,如果说将来你不使用support了,那你是用不了的,因为你实现人家的接口,或者说继承人家的内了,对不对啊啊,那么假如说你用这个技术,比如说我想使用这个SPA去实现某一个功能,但是呢,我不需要去继承它的类,也不需要去实现它的接口,那这个东西叫做非清入式。明白吧,啊,那么这个这个轻入式与这个非轻入式呢,我们还有另外一种叫法啊,可能大家就知道了啊,叫做什么呀,轻量级重量级听过没有听过吧?哎,我告诉你,非轻入式就是一个轻量级的,而轻入式呢,就是一个重量级的。
08:13
能明白这个意思了吗?OK,好,所以先这个大家一定要记住了啊,叫做什么非进入式的,那么这对于我们这个spring来讲的话,我们再去做开发的时候,我们几乎是不用去实现它的接口,也不用去继承他的这个类的啊,也就意味着人家没有强制性的要求我们这么去做啊,但是呢,话说回来啊,人家里面呢,也帮我们提供了好多优秀的功能,我们是可以主动的去实现一些它的接口,或者说呢,去继承一些它的类来用到他所提供好的这些功能的,能明白了吧?哎,你不要说这个觉得说哎呀分清入式的,我就一点都不去实现,我就一点都不去继承,这其实也不好。对吧,你如果你这么做的话,人家提供好了好多这个优秀的功能,你用不了。听出来这个意思了吧,OK,那么整体上来讲的话呢,它就是一个非侵入式的啊,因为我们在实现一些基本功能的时候,我们完全不必要耦合于它,我们自己写自己的就行了。
09:12
啊,所以这个大家一定要对它有一个清晰的认识啊,来再来看下一个叫做依赖注入,呃,那么这个依赖注入呢,我们把它叫做Di啊,这也是我们具体要给大家去讲的,叫做dependenceency injection啊,就是我们的依赖注入,那么其实这个依赖注入它表达的就是我们IOC啊这样的一个概念,那么到时候我们再去讲的时候呢,再来大家具体的去说一下,现在你就记住它有一个东西叫做依赖注入啊,那么下一个紧接着我们说到的就是这个a op了,A op就是一个面向切面编程啊,又一个编程思想,对不对?哎,又一个编程的一个思想,那么除了这个之外,大家还了解过面向什么的编程,最基本的面向对象是不是啊,就是我们天天在研究的这个章,叫做面向对象啊,那么呃,还有一种就是我们面向过程的,这个大家知道吧,啊,面向过程。
10:12
啊,最典型的代表就是什么呀?诶,就是我们的这个C了是吧?面向过程的啊,那我们在我们这个实际的开发中的话呢,我们还有一个概念叫做面向接口开发,听懂了吧,面向接口开发啊,那么这几个呢,大家都需要对它有一个基本的了解啊,现在我们提到的是面向切面编程,那么现在呢,我也不给大家去做过多的解释,等我们具体去学这个AOPP的时候,我再告诉你什么叫做面向切面编程啊,现在都是基本的概念,你先对它有一个了解,下一个容器啊,其实我们现在要讲的这个point呢,它是一个哎,巨大的一个容器能明白吧,然后呢,它包含并且管理应用对象的一个生命周期啊,这个概念需要给大家解释一下,呃,容器这个概念我们是第一次听说吗?哎,不是吧,哎,这应该是算第二次了啊,因为我们在讲JA web的时。
11:12
我们就提提到过什么呀,Tocad容器是吧?啊,你可以叫做他CAD服务器是吧?啊,其实他CAD它也是一个容器,然后呢,什么web应用服务器,什么web容器对吧?啊,其实这这几个叫法描述的就是一个东西啊,那我们就拿这个tocad来为举例子哈,你说tocad它是个容器,那么它这个容器做了什么事情呢?做了什么事啊,是不是为我们的这个solid组件,为我们的filter组件,为我们的listen的组件,为我们的JSP组件提供了一个运行环境吧,对不对?哎,所以这个大家一定要知道啊。那么现在我们所说的这个容器呢?在子波里面来讲,它是为所有被他管理的对象提供什么呀?运行环境,也就意味着我们使用了po以后呢,几乎所有的对象我们都不再通过new的方式去创建了,而是把它交给我们的point的这个容器,让这个容器帮我们去管理你这个对象的创建,管理你这个对象的销毁等等等等,听明白这个意思了吧,所以说了,你可以把破理解为它就是一个巨大的一个容器。
12:25
明白吗?OK,那么再往深了挖一下哈,这个容器最底层是什么呢?其实就是一个工厂,明白吧,就是一个对象工厂为什么敢这么说呢?大家就来想,那么你能帮我去管理对象的创建,能帮我管理对象的销毁,那你想想他怎么帮我创建对象啊,是吧?它底层肯定要通过反射的方式啊,或者说什么采用其他的一些方式来帮我创建出这个对象来,那我们就拿获取对象的这个角度来说,我找他的容器能给我一个对象,那这个不就是工厂的一个模式吗?
13:03
对不对,所以说呢,诶,你容器你能帮我管理各种各样的对象,那么其实我们在从使用的角度来考虑,我能找你要到各种各样的对象,那么其实你就是一个对象的一个工厂。明白了吧?啊,所以说这个大家也要知道啊,它底层确实是一个巨大的一个工厂,当然它也可以造成是一个容器啊,所以说这个概念呢,我们也需要知道,那么等我们具体讲这个容器的时候啊,就讲这个破里面它这个容器的整个结构的时候,我会给你再来详细的去说一下啊首现在呢,你先对它有一个基本的了解,呃,再来往下看一下,下一个呢,叫做这个组件化啊。啊,或者说什么呀啊,就先然说这个组件化吧,嗯,这个组件化呢,其实他表达的含义就是我们这个破呢,可以用,诶使用简单的这个组件配置啊,来组合成一个复杂的应用,也就意味着什么呀,你在破里面做开发的时候,其实我们都是按照单个的组件组件组件这种方式来做的啊,比如说我写一个什么组件啊,我写一个这个呃,控制成的一个组件啊,我再写一个DAO层的一个组件,我再写一个服务层的一个组件,那么我们都是以组件为单位来去开发的,但是最后呢,我们可以以简单的XL的方式来配置,或者说使用注解的方式,把这些组件呢,给它组合成一个完整的一个应用,因此它也是一个主件化的一个框架,明白这个意思吧,啊,其实这个主件化描述的是什么呀,就是结偶。
14:41
对吧,我把你整个的这个项目给你拆分啊,拆分成各种各样的组件,然后呢,每个组件你就具体去负责你所负责的事情就行了,然后呢,最终呢,我把这些组件呢,挨个给他们什么通过配置的方式,或者说通过注解的方式给他们组合起来,形成一个完整的一个应用,明白了吧,叫做主件化啊,这个是我们需要知道的啊,最后一个呢,我们再来看一下啊好看一下这个呃,一站式啊,这个呢,大家也需要了解一下啊,什么叫做一站式呢?大家注意就是呃,Surprise的支持,我们在它的这个loc或者是LP的这个基础之上呢,去整合其他第三方的一些优秀的什么开源框架,或者是第三方的一些类库。
15:31
啊,比如说将来我们会讲到support去整合我们的买啊,Support也可以整合我们其他的,像这个have ne,像这个ru to等等等等一些框架,我都能给你整合进来啊,然后呢,还可以去什么呀,去整个第三方优秀的一些什么类库啊,比如说呢,我可以把你的数据源给你整合进来是吧?诶,我可以把你的一些,呃,这个这个日志啊等等一些给你整合进来,都是可以的啊,那么我们现在从这两方面来讲啊,从这个web以及这个数据城这两个方面来讲,Port呢可以整合,比如说我们比较著名的一个框架叫做two啊,可以整合比较著名的这个哈,Net或者是my bet啊,这几个框架呢,都是来帮我们去做,诶,一个是做Java web的,一个是做这个持久城的啊,那么其实spring本身呢,它也提供了对应的一个解决,比如说对于Java web这个解决呢,我们通过point的MVC来去解决,而。
16:31
对于我们这个持久成的,像这个JDBC相关的东西,我们可以使用point JD bc来去解决,也就意味着你以前所有学的东西,像这个JDBC也好,对吧,像这个其他的一些框架也好,你完全可以把它抛开,你单独使用这个point,那么你就可以完成一个非常庞大,非常完整的一个Java意义的一个应用了,因为它里面对你在项目中所有用到的技术都提供了一个支持。
17:01
这叫做一站式对吧?啊,简单理解就是什么呀,你只要用过就行了,其他的你都不用去用了,能明白这个意思吧,能听懂吗?OK,但是哈,话又说回来了啊,他虽然说帮我们提供了这个po m VC以及这个S的JDBC啊,对于这个SPAMVC来讲,它是特别优秀的,我们一定要去用的,而对于这个po的这个JDBC来讲呢,哎,它可能体现的啊,表现的不是那么完美,所以说呢,我们还是会使用一个第三方的,就是其他的一个框架,就是我们的买来去做这个事儿,理解吧,哎,虽然说你提供了,但是呢,我在用的时候,我一定要去采用一个特别棒的,或者是什么特别好的,特别优秀的一个框架来去做这个事儿,明白了这个意思了吧,OK,好,呃,那么这些呢,就是我们point的一个什么简单的一个介绍啊,这个刚刚描述的这个过程中,其实心。
18:02
息量还是挺大的,对不对,信息量还是挺大的,那么暂时呢,大家都对它有一个基本的认识,然后呢,随着我们后续的这个学习呢,大家再一点儿一点儿的把这里面的每一个知识点呢,都去做一个深入的一个了解。好吧,现在你只是一个简单的认识。
我来说两句