00:01
OK啊呃,那这个介绍完成以后呢,接下来我们给大家去介绍一下我们这个今天的这个主角啊。呃,就其实你正常,如果你要讲这个Java web的话呢,呃,你需要从很多技术从最基础的开始讲起啊,最后最后一直一直诶讲到这个门过程,就中间是有一个过渡的过程的。能听懂吧啊,但是呢,我们是不可能给你把这些东西再讲一遍的啊,我们直接上来以后就死奔过程能理解吧啊呃,但是呃,细节的东西我不跟你讲了啊,那这个发展的过程呢,我可以怎么跟你简单聊一聊啊,就是你也了解一下,呃,他这个Java web里面啊,就Java这个开发的话呢,这个从最初始啊,到现在为止,它这个整个过程是怎么发展的,这个技术是怎么更新迭代的。OK吧,我把这个事给大家去说一说啊,行呃,这个的话我想我我也写到这吧啊,写到这得了啊。好简单去聊一聊啊,这是那个就是Java web啊,技术的一个发展过程啊,Java web Java吧,哦JA web吧,好吧,就加web得了啊,然后技术了一个呃,发展过程啊这呃,当然哈,这个我就把几个比较重要的。
01:10
重要的节点给大家说出来啊,其实里面还会涉及到很多,我们就不再去聊啊,呃,那你要说到这个JA web这个技术发展过程的话呢,你就是什么从从最原始说起,那么最原始的话呢,应该就要说一下这个东西了,嗯,怎么没了呢?好说这个东西,这个东西叫什么叫做叫做。啊,你最原始,你要去说这个东西。OK啊,呃,这个so是个啥东西呢?给大家去解释一下啊,这个其实是由这个上公司啊,我不知道你们还有有没有印象啊,这个公司就是什么Java的那个最开始那个公司啊,上公司这个提供的一个标准啊,提供了这个什么Java的一个标准。明白了吧,就人家什么自定义,自定义的什么定义好了这个Java的一个标准。嗯,但是大家注意哈,他只只定义好这个标准,那这个标准的话呢,你要从我们代码的角度来理解的话,就是接口啊,他把各种接口给你写好。
02:03
他把各种接口给你写好了,那么写好这个接口以后呢,他没有去做这个具体的实现,就是你到底应该怎么去交互,你交互的细节是什么样子的,我没有给你去写,我只把这个标准给你写好了,好那么我们这个真正能够什么进行交互的这个标准啊,或者交互的这个什么细节,具体的实现是由谁来去做的呢?是由各大外部应用服务,外部应用容器的厂商来去做的,比如说tomcad就是其中的一个。啊,那你就可以理解为啊,他们看中我们对这个Java web的一个交互啊,其实就是什么基于这个上公司的这个接口来去做的,或者什么这个标准来去做的。能理解吧,啊,那么我们最原始的话呢,就是使用这个so,这一套东西呢,去做这个开发。啊,最原始so这一套啊,就是呃,基于什么,基于我们的这个tomcat啊,当然呢,除了这个tomcat之外呢,还有什么别的这个web应用容器啊,还有很多啊,什么web logic啊等等等等一些啊,有很多我们就不提了啊,现在比较主流的还是它好吧,还是他啊就说白了啊,这个Tom k呢,呃,实现了这个什么标准啊,就Tom k啊,基于什么基于呃基于该标准啊,该标准,然后呢,实现了这个具体的细节啊。
03:14
OK了吧,啊把这个具体的细节呢,给他这个实现出来。啊,具体的一个细节,好就这样啊,行,所以说我们这个最开始啊,你在就做这个Java这个开发的时候呢,你就使用这个solid就可以了,好在这个solid啊,你这个用能用啊,绝对没毛病啊,但是他这个用起来就会很麻烦,麻烦在点在什么地方,就是他要写大量的代码啊,你要写什么,写这个大量的代码,就是你的每一件事情都得什么通过代码来去实现,就一行一行代码去把这个堆出来,而且的话呢,因为你的JA web要什么,要跟你的这个。页面中去做交互对不对?好,那比如说呢,我现在发起一个请求,我想去请求一个这个商品的详情。对吧,那最后呢,我在我页面中想要去展示什么效果,我需要在这个Java代码中呢,把这个所有的这个页面中要展示的代码全部都是什么,在Java中给它封装好,然后呢,整体给它上面写回到这个页面中,这样的话呢,我的浏览器才能够什么去解析你写回来数据才能够给什么展现出什么一个页面来。
04:09
那你就想想吧,你在这个Java代码中,你要去写这个什么HTM的这个代码,那他肯定是不认识的呀。那我们应该怎么做呢?我们就应该通过什么,通过字符串的方式,把这个所有的这个HTML代码给他什么全部都封装成字符串啊,大篇幅的字符串,然后给他反馈回来。这个是非常非常头疼的。啊,所以说啊,他在这个后面的话,又出现了一个什么呢?出现了一个这个东西,就是我们又多了一个技术叫做JSP啊,就是我们solve之后啊,我们又一个,诶比较有这个里程碑的一个阶段,就是这个serve加JSP,这个JSP啊,它翻译过来什么叫做Java server配置,就是你这个Java服务端的一个页面啊,它这个虽然叫页面啊,但其实它本质上它不是一个页面,它的本质其实还是一个so。啊,它的本质呢,还是一个啊,还是一个so。
05:04
那么你既然你还是一个,那你解决了什么问题呢?大家注意啊,既然它叫页面了,说明这个东西啊,我在里面是可以什么直接去写你的HTML代码的。能明白了吧,就说白了,我把这个写HTML这个代码这个事情呢,单独给你提取出来了。OK吧,但是呢,他还是一个服务端的东西啊,它还是一个服务端的东西,所以说呢,将来这哥们去执行的时候呢,其实我们这个服务端呢,还是会给它编译成一个这个solid,那么至于我们在它里面写好的这个HTM代码呢,就是由你的服务端呢,诶自动的把这些东西呢,给它包装成我们的字符串。自动的去解析的字符串,然后呢,把数据呢,给你写到这个页面中,写到你这个前端的页面中,就说白了,这个事情呢,我们一开始很头疼,对不对,好,那后来的话通过什么,通过这个JSP呢,就可以什么帮助你去做一个讲话。啊说这这个有了GSP以后呢,确实啊,也是这个简化了这个很多很多这个操作。啊,那么当时的话呢,有拿这个solid加SP去做的,也有什么呀,纯拿这个JSP去做这个开发的,这也是可以的。
06:05
好吧,这也是一个算是一个这个里程碑的啊,里程碑的OK,那这个再往后这个发展的话呢,就是逐渐的出现了我们这个所谓的框架了啊,同学们就是对他们的一个封装,就是我们这个在这个使用的过程中呢,发现你这里面写的东西呢,其实有百分之七八十的代码都是一样子的,都是什么前后的一个什么交互过程,你的请求来了以后,你要做什么操作,我给你响应,我要做什么操作,这个基本上都是固定化的一些操作。你唯独不一样的其实就是你的业务处理,对吧,你要做什么业务处理,这是不一样的,好那么现在的话,我们就什么逐渐的就是什么开始对这个呃操作呢,做一些什么封装啊,做一些封装,那么后面我们就什么渐渐的出现了我们现在所使用的框架啊,那么第一个啊,有里程碑的这个框架,我们是一套哈,我就直接说一套了,叫SSH。啊,叫这个SSH。好吧,啊,这个当时其实还有一个叫这个ssi吧,啊叫SI啊。
07:03
啊,这一套也是用的啊,这一套也是用的好,那么这一套是什么东西呢?给大家去说一下啊,这个SSH呢,呃,SSH其实这个东西啊,就是我们的,呃,Tru two。啊,然后呢,加这个spring啊,加这个OK,然后这个ssi是个什么东西呢?啊,就当时也有用的啊,也是这个ru two,然后呢加这个spring,然后呢,再加这个iab啊。啊,加这个。能听到吧,啊,这是当时这个比较主流的这个两套框架啊,行,那么这里面的话大家注意哈,这个ru two它主要干什么事情呢?啊,这个ru two呢,主要就是对我们。整个Java web的一个交互过程,然后呢做了一个封装,然后你再去使用这个刷的时候呢,就节省了你这个写很多这个重复性代码的这个事情,你只需要把一些什么核心代码自己去写一下就OK了。好,然后这个spring解决了什么问题呢?啊,这个spring的话,主要就是在你整个项目中,它作为一个什么容器啊,这样的一个角色存在,它可以帮助我们去管理你这个整个框架中所有需要用到的什么对象的创建啊,对象这个生命周期的一个管理啊,然后呢,呃,就是这个各个层之间的一个什么调度过程啊,他都可以帮我们去做啊,因为它里面有两个这个非常好用的东西,一个是这个LC,一个是这个L,对吧,这个LC的话是什么,作为我们的这个。
08:25
呃,就是对象的什么这个管理对吧,它里面还有一个什么什么Di,就是什么做这个什么依赖注入啊,那这个a op的话,就是我们所谓的面向切面编程啊,可以什么通过这个切面的方式呢,做一些呃整体事务的管理,整体异常的处理等等一些啊,就它也是什么帮助我们去简化你这个整个项目开发的。好吧,好,然后呢,这个后面这个have啊,这是个啥东西呢,给大家去说一下啊,这个是一个持久城的一个框架。啥么叫持久城呢?就是操作你这个数据服务的一个框架。好,那我们最开始的话,如果你要什么对这个数据库的做读写,那你只能老老实实的写你的JDBC代码,好,那如果你要写JDK代码的话,这个代码的不难,难点在哪?难点在写搜狗语句。
09:09
明白吧?可能对于大家来讲啊,你现在这个so,其实也没啥难的呀,我们不都得会吗?但其实如果你要这个往前推啊,你放到这个很早很早之前那会的程序员其实不像现在啊,要求你啥都会,那会儿的话呢,我会个Java就行了,我就可以找工作,我就可以什么上班干活了。对吧,你还要求我会买搜狗,那不可能的,你还要求我会写搜Q语句,那不可能的,对吧?你得专门找一个会搜狗的人去写,写搜狗,我就专门负责写代码。所以说这个当时这个开发的时候呢,就是会Java的就会Java,会搜狗的就会搜狗,你要说这个一个人什么都会哦,这种人相对还是比较少的。所以说我们就面临一个问题啊,你写Java的人呢,他知道业务,你写soq的人呢,他知道怎么去操作数据库,但是呢,你让这个写业务的人呢,还得什么跟那个写so的人去对接说啊,我想实现一个什么什么业务,我要做什么什么操作,你把这个东西给我转化成一个烧烤。
10:00
对吧,这个事呢,什么交给多个人去做,那就很麻烦。所以说啊,当时呢,就想着说,诶,那我能不能说把这个整个操作的过程呢,给他做一个封装,对吧,做一个封装,我能够支持这个不会so的人,诶去什么通过Java的方式操作你的买so。那么这个框架它就实现了这个功能。就说白了,你使用这个框架的时候呢,你根本不需要知道什么叫做烧烤。理解吧,啊,这个说的夸张一点,你根本不需要知道什么叫做so考,你只需要知道面向对象就OK了,因为这个框架是纯面向对象。进行什么操作的,就比如说我想到买活动去查个数据,那你在这个里面就调个方法就行了,对吧,我想去写个数据,我想去删个数据,你就直接调个方法就行了。全部什么通过调方法的方式来完成,那么至于那个Soo语句啊,大家注意你毕竟你要到买soq里面操作,那你Soo怎么办呢?框架它会按照你所调的方法,按照你所做的配置,自动帮你去生成这个so。说这个当时这个框架出现了以后呢,确实是相当相当火的啊,当时这个写代码用这个东西很爽啊,非常非常爽啊,这个框架真的是非常非常好用的一个框架。
11:11
理解吧,啊,这个简单说一下啊,呃,还有一套是这个用了这个I bet啊这个东西的话呢,其实呃,也用过一段时间啊,但是呢,后来的话也就不了了之了啊不了了之了,明白吧啊,他就当时来讲的话,它是没有这个havelet这个好用的。明白了吧,是没有这个好用的啊,OK。行,那么这是我们这个又一个里程碑的一个阶段啊,然后再往后的话呢,就是现在演变成我们现在这个比较主流的一套了啊,就不再是这个SSH了,它变成了SM。这个SSM分叶是谁呢啊,第一个S呢,就不再是start了,它是这个spring mvc了啊,第二个还是这个s spring,第三个呢,变成这个买。啊,逐渐演变成了我们就是目前最近几年都还什么非常主流的框架,叫SSM。
12:01
好,那我需要说一下啊。呃,为什么这个抓没了呢?注意啊,我们拿Mac去代替了他,就他们两个所干的活呢,其实是一样子的。好,那为什么这个start就不行了呢?呃,其实也不能说不行了哈,因为主要呢,还是这个家伙太强大了,你能听懂吧,这个spo相当强大,然后呢,它把这个spring中呢,又提供了一个什么功能,叫这个s Mac功s SPA Mac这么功能,这个功能的话呢,它就可以什么帮助你去做这个web的一个交互。那么既然这个这个框架啊,在我们整个的这个Java开发中,它是有一个非常主导的地位的,因为他所做的事情,这个LC啊,什么AP这种事情呢,基本上是没有什么竞品的。明白吧,就是你想把它换掉哦,很难,但你想说换个别的东西那还简单,因为有什么有竞品,但这个东西没有竞品好,那么既然你管理的时候你用的是这个po,那我们是不是用他这个自己所带的这个SPAVC,它们两个这个整合起来兼容性会更好啊,那是一定的呀。
13:00
你整合SPA跟整合这个,那绝对是不是一个级的东西。毕竟人家是什么一个公司做的呀,这都是资本公司做的。理解吧,啊,当然呢,这个还有一种说法就是什么呀,就是这个恶们啊,好用归好用啊,但是呢,这个老爆一些漏洞。曾经有一个这个应该是在两在2000年左右吧,我记得是忘了哪一年了啊,这个报了一个非常非常致命的一个漏洞啊,非常致命的一个漏洞啊,这个漏洞的话呢,当时是造成了很多公司啊,造成了这个很多损失损失的。明白吧,啊,但是人家也在这个很短时间内就把这个漏洞给修复了啊,啊,可能也是因为这个原因吧,然后这个慢慢的就不再去使用它了,因为你经常爆漏洞。对吧,但是我觉得啊,这个漏洞这个事儿,你什么框架,你没有漏洞啊,对吧,只是没有报出来而已啊,这没有这个绝对安全的。是不是啊,所以这个逐渐的呢,这个东西就用的不是不多了啊,就变成这个SPAVC了啊,它呢,就代替了这个刷的这个功能。好,那这个sport的话呢,还是这个原来这个spo对吧,好再来说下这个后面这个买啊,诶那为什么这个have那么好用,我也不用了呢。
14:05
啊,这个其实就是按,就是按照我们这个什么呀,这个互联网这个发展的趋势啊来去决定的。因为很早之前我们这个互联网呢,其实没有像现在发展的这么这个火,对不对。发展这么快啊,当时你说互联网啊,就是你们你你们就往前推上这个十来年啊,你们想想那会儿你们逛淘宝逛京东那些东西吗?你们知道那些东西吗。对吧,就你们上学的时候。是不是啊,可能你们已经知道了啊,那像我们那会儿的话,什么京东淘宝是不可能的,不相信淘宝上买东西不相信。对吧,就那会儿我们这个网民是非常少的,就说白了这个互联网呢,当时还是一些就专业性的一些东西,就专业里面的人才会去用它,像这个平民老百姓哪知道那个东西啊。对吧,啊,所以那会儿的这个上网的人是非常非常少的。而且的话,那会的话,我们这个整个,呃,这个这个就是你整个这个Java web中啊,比如说我们要处理什么业务啊,什么业务场景什么的,都是非常非常简单的。
15:02
明白了吧,非常简单的啊,所以说呢,拿它去做是非诚非诚适的啊,但随着这个互联网这个发展啊,这个用的人呢,越来越多了,然后呢,我们的对于每个这个这个平台的这个考验比较大的就是人越来越多了,那我请求越来越多了,我的并发越来越高了,我的需求改动越来越大了,我的业务处理越来越复杂了,这种情况下,他就显得有点力不从心了。为什么呢?因为你的请求多了,你的并发多了,你的业务复杂了,那我们就要逐渐的去追求你的处理效率。对吧,而这哥们儿呢,他是什么呀,按照你的操作给你翻译这个Soo语句,那你翻译Soo语句谁帮你翻译的,是机器帮你翻译的,那么机器帮你翻译的话呢。他只能够保证这个so口能够执行,能够执行出对应对应的结果来,但是我不不能保证你这个so绝对是写的最好的。明白吧,大家都知道搜狗是可以做优化的,是不是你通过不同的方式写,那我最后达到这个效率是不一样的。
16:01
但是呢,机器是很难去做到这个事情。明白吧,所以说越往后发展,人们就发现说这个搜口呀,还得我自己去写,我来自己去控制这个搜口怎么去写,因为这样我是可以什么最大程度的去对对它做优化。而且的话,你如果说想做调整什么的,我也比较灵活啊,我去改改烧烤就可以了。所以说呢,就决定了啊,这个东西的话呢,就有点太死板了啊,没有那么灵活啊,因此呢,这个买就又火起来了。因为这哥们儿他这个意识到了啊,现在的问题就是呃,一些这个重复性的工作,比如说这个JDBC里面重复性的工作,我们都不需要你们去做啊,他也不需要你去做,我也可以让你不用去做,但是呢,我把一个非常关键的。搜的这个编写我不帮你做这个东西,我是留给,留给什么,留给这个开发人员自己去写的。对吧,我把这个致命性的东西啊,关键性的东西我抛给你,我不帮你做。因此啊,它所实现的功能就是所有的这个操作不需要你去写了,但是呢,你唯独要做的就是把so写好,你只要把so写好,我就能够按照你写好的so口,然后帮助你去做这个正删改查操作。
17:07
啊,所以现在我们这个比较主流的,哎,就是它了,因为确实我们是需要把SOHO呢,放到我们自己手里面,自己去完成的。OK吧,那么就发展成了这一套技术。啊,那么这一套技术其实已经持续了很多年了,到现在依旧是呃,比较稳定的,比较这个成熟的这一套方案,OK吧,好,但是呢,我们现在如果要做开发的话呢,我们也不会什么完全基于他们去做。就什么不会什么,从这个层面去做,我们会再提升一个层面,那么再提升一个层面是什么层面呢?就是这个层面。就是我们今天这个主角叫好给大家去说一下啊,呃,这一套方案啊,它已经非常的就相对来讲的话,已经什么相当完美了啊,特别特别好用。但是呢,还是略显这个略显麻烦,略显啰嗦,因为你要STEMVC啊,虽然说是一家的,但是还是要去写一些整合的代码。
18:00
好,那么我在跟你的这个买白一起用,那我也需要去写这个整合的代码,就他们各自呀,你看的是一套,但是呢,工作的时候呢,各自还是各自的,就说白了啊,他有他需要有自己的东西,他需要有自己东西,他需要有自己东西,就简单举个例子,他们都有各自的什么配置文件啊,各自配置文件,那么如果说诶我们想去改谁,那我要什么,找到对应的配置文件做出一个修改,找到谁对应的配置文件做出一个修改。对吧,这是一个比较烦的地方,再一个就是什么,他们的这个整合工作,你需要什么协议,他们之间怎么整合,他们之间怎么整合。这也是比较烦的。啊,那么这个时候呢,这个point啊,这个公司呢,他就注意到了,就意识到这个问题了,说现在这套方案呢,是相对已经成熟了,但是呢,开发起来呢,还是略显麻烦,那我能不能把这个整个项目的一个什么初始搭建,以及你这个整个的开发过程,我再次给你做简化呢?对吧,这个时候它就在这些基础之上,就在你这个spring SPA VC啊,这个是核心啊,在这些基础之上,它就推出了这个SPA过程。
19:02
这个boot里面,这个boot是非常非常关键的,它叫做什么祈祷啊,这个什么祈祷,这个启动引导对不对啊也对是吧,启导是吧,启动引导就是他把你这个初始的搭建过程,初始的启动过程,以及你整个的开发过程都帮你做了简化。而且呢,他还什么呀,把这个我们现在市面上所有比较主流的技术,就是你能够在这个Java中开发所用到的技术都做了一个整合。就说白了啊,他把这个市面上很多东西呢,全部什么整合到了一起,他负责了一个什么整合的工作。那么将来,比如说我想在这里面去使用买杯电子,非常简单,你不需要自己写那个整合代码,你只需要引入一个依赖包,比如引入一个炸包,我就给你整合好了。好,那你说我们将来会用到很多很多技术啊,这些技术的话呢,我们都放到一起用,那我还需要单独去维护各自的配置文件吗?同学们注意不需要了,它都给你整合好了,全部都整合到了一个配置文件中。你不管是买也好,这个sport也好,Sport也好啊,比如说你要调用也好也好,等等等等一些所有能用到东西,我都可以在这同一个配置文件中做配置。
20:12
理解我的意思吧,就相当于把你整个的开发过程呢做了再次的简化。啊,这就是这个现在比较主流的什么过程。啊呃,其实我们这个现在一直在用的这个东西啊,同学们用了这个东西,比如比如说这个DBs.SH啊,你看生成数据的时候,呃,这个看不着是吧,呃OT Mo掉啊,诶我看一下这个数据是不是又跑了一遍。啊,没事都停掉了啊,来看这个东西啊,就我们用的那个生成器啊,好看一下我们这个生成器啊,我这来去执行啊加va杠炸,然后呢,你看一下啊,这个生成器,其实我们就是拿这个S写的啊,你看一下。对吧,这就是那个。OK吧,我们的生成器就是拿这个来去写的啊,好,然后这里面还有另外一个东西,就这个东西啊,呃,这个你看的话叫什么叫这个my bet plus,对吧,其实它的核心就是买bet啊,只不过这个买吧现在呃用的话呢,我们也不会直接去基于它去用啊,会基于什么呀,对买be的又一次的封装啊,那么有很多像什么这个通用map呀,或者什么这个买plus呀。
21:17
对吧,就是让你这个买的开发呢,也变得什么更加的这个直接,更加的方便能听懂吧,就现在就是什么Java啊,它是很成熟的。明白了吧,它是很成熟的,它的各种各种封装啊,各种框架特别特别多,基本上我们在做开发的时候呢,呃,你所遇到的这个事情啊,都有类似的框架。给你提供解决方案。所以说呢,这个Java的开发主要就是看你这个。技术的一个广度啊,就是这个东,这些东西你都接触过没?只要你接触过,那么他能做什么事,他能帮助帮助你解决什么问题,那你心里面肯定是都知道的。OK吧啊,这个简单聊一下就行了啊行,那么这样的话呢,我们就把我们这个今天这个最后的一个主角啊,照这个B啊,就把它这个引出来了,好接下来我们就对它呢做一个介绍。
22:03
好吧,来这是我们这个技术的一个发展过程啊,大家这个有一个呃,认识就行了啊好。
我来说两句