00:00
好,这是我们这一层啊,这个下边呢,我们来看看控制层,控制层大概它的职责是干什么的。控制层干什么呢?对,这个是控制什么接收请求,然后呢,创建是吧,对创建骚出来的对象是吧,还有呢。Oh。是不是要处理业务的,他会调不同的service去处理业务,去对处理业务,然后还有什么把处理结果是不是也是通过他返回到什么,返回到前台去啊,对返回到前台页面,其实他就是控制整个业务处理的流程的,要控制流程的他主要是来控制啊,控制他的职责是控制啊控制业务啊,业务处理流程的,他主要是处理流程,他自己不处,他自己不处理业务,他来控制业务处理的流程,那业务处理的流程都是什么样子的?那我们说所有的外部项目的这个流程都是这样的,流程都是什么样的,客户用户从视图层发请求,然后向后台发请求。
01:16
后台有什么代码去接收请求并且处理,接收到之后处理,处理其实就是操作数据库,处理完了之后把结果返回,那么这个控制层就是来控制整个流程的,用户从前台一发请求,向后台发请求,后台Java代码接收,接收到之后处理,处理完了之后把结果又返回给这个市都层。又返回给用户,这是整个这个流程,控制层主要是控制这个流程啊。控制这个流程。这是我们说的这样控制这个流程,具体来讲它的职责有哪些呢?他职责是这样,具体来讲就是他他是控制的,是如何控制流程啊,是这样是吧,然后用户从视图层发过来请求了,那么这个什么控制层要接收请求,要接收这个请求,他负责接收请求啊,接收请求,那接收到时候如果什么用户发请的,如果带过来参数了,发过来参数了,他还得负责什么。
02:14
对,处理参数或者叫接收参数,接收参数啊,参数如果是提交了一个还行,如果提交了好几个参数,那怎么办?对,还得封装一下,还得封装一下,为什么要封装,因为他将来要处理业务的时候,他不处理,他要调service层,调业务层去处理,调业务层去处理,如果参数很多的话,他得把这些参数都得传给业务层,那如果参数很多。那十几个参数,那他调业务层的时候,把十几个仓数都得传给业务层,那传给业务层,业务层在什么。业务层那个方法,他要接收参数的时候,是不是它的定义形态去接收,那它的定义十几个形态。行参太多了,写代码不好写了,所以如果参数很多的话,还得什么封装一下,封装参数啊,当然如果不封装也能传过去,只不过代码太复杂了,太麻烦了是吧,所以一般来讲还要封装一下,封装好了之后怎么那就是么,就开始处理业务了,处理业务我们说控制层一般来讲他不处理业务。
03:17
真正处理业务什么在业务层来处理的,那业务层来处理干什么,那他说那到底业务层有很多类,有哪一个类去处理呢?那我说有控制层来决定,控制层会根据不同的业务来调用业务层的代码去处理,所以它是根据什么,根据不同的这个根据不同的啊,就他是根据不同的这个请求,或者不同的业务来调用啊来调用。业务层啊,调用业务层去处理,处理业务,去处理业务,至至于调哪一个,由请求来决定,不同的请求调不同的业务层去处理。啊,所以这就他就控制这种流程啊,控制这个流程往哪个业务层去什么去这个啊推进就这个意思,那假如说他找到一个业务层处理了,那处理处理完了之后怎么办呢?那他会拿到一个结果,然后呢,根据处理的结果是不是往人家发的请求,用户发的请求,那是不是你得根据把这个处理的结果返回给用户,返回给视图层,所以他的第三个职责是根据什么,根据处理结果,根据处理结果啊处理结果,然后呢,返回视图层响应信息,这是它的职责,这是我们说的控制层的职责,那我说控制层为了实现这些什么,为了实现这些职责,我们学了哪些技术。
04:48
对,哪些技术能接收请求,获取参数,封装参数,掉sorry的返回结果,对,是不是骚出来导对搜出来了,你大家好,学完技术你要会用它是吧?你要知道这些技术是干什么的,所以将来你开发的时候是吧,你遇到这些问题,你要么这个知道怎么用它是吧?好sorry的,那sorry,那如何做这些事呢?那你想想以前学过的sorry怎么接受请求。
05:15
对,都盖都破是不是你写一个sorry的类要配置一下知要配置给他分配一个UR是不是这道吗?让用户从前台向UR发请求,他就接收到了。接了之后他怎么获取参数。对request get是不是啊,这我获取那封装参数就好办了,就直接封装就行了,那下边呢,它调业务层,那你该也好调,直接六一个service是不是就掉了就掉了,然后返回响应信息咋返回。Sorry,对拉访回对找response是吧?对你要往回返回一个网页,Response拿到一个流是不是往外打就行了,对往外打就行了,当然如果是访问网页,还可以跳转到某一个网页,是不是这样总这种好,这是我们的这sorry,当然这sorry的我们说他为了做这些事,虽然功能能实现,是不是写起来比较麻烦啊,写起来比较麻烦,对写来比较麻烦,怎么麻烦了,一个骚只能处理一个请求,所以有很多请求你得写很多骚扰,写完之后都得配置,配置完之后有参数,该他发什么异条。
06:20
然后一个参数你获取就行,几十个参数你就调几十个get的盘数条。呃,更严重的是吧,光辉返回响应信息的时候,通过流自己往外打,太难了,太太麻烦了是吧,所以做一个功能,写大量的重复的代码。所以大家实际开发的时候不可能用它了,那我们还有什么技术做控制层呢?对spring VC是不是这种控制层的框架对sorry进行封装是吧?他来完成这些事,那么就比较简单了,那他怎么对sorry封装来完成这些事呢?他怎么封装呢?那依赖逐入还有什么?先看他怎么接受请求,VC怎么接受请求。
07:03
对,中央控制器是不是接收某一种规则的请求啊,对请求完了之后呢,真正根据什么那个URL是不是调它不同的CTRLL,每一个CTRL方法都有URL啊对来调URL就行了,调下来之后它怎么接收参数的。对,就是直接通过行参是不是就可以了,对行参回去了,甚至获取的时候是不是可以自动封装啊,对,可以自动封装,然后呢掉调业务层,那什么调业务层就好掉了,注入相应的service是不是就可以直接调了,那他返回详细信息咋返回啊。对,他可以返回,你看返回什么是吧,如果返回杰森,杰森是不知道他咋返回的。个你帮我看注解知道,对,加一个respond包注解是吧?对,把你的数据是不是放到一个加入对象里边,1RETURN是不是自动给你返回接任字串了,对,那他要返回网页咋返回啊。
08:04
那对,直接返回那个什么,那个页面的资源路径是不是就可以了,对,或者把那个资源路径放到model and view里边是不是意思就可以了,这这些什么,这些做起来就比较简单了,就它比sorry的简单多了,所以说大家我们以后开发的话,基本上控制层都是用spring VC知道吗?都用,那你说老师在公司里边是不是也是用,公司里边现在大多数都是用springc,当然也不一定。为什么?那不不是用死亡C,用什么用?当然也不是用干什么,跟死亡类似的框架还有的。类似的框架一样,他们也是对server的装装,也是提供核心控制器,也是提供别的什么control,但是他们那些技术不叫control,他们叫action,但是大同小异,思想都是一样的啊,所以呢,这些有哪些技术呢?我给大家列一下,要给大家列一下,然后呢,但我们不用大是你知道这些技术跟springc类似,你用spac就不用他们了,用他们就不用C了啊,到时候人家万一面试问了,你用过这个技术,那你说我们用C,那我们没用过的,他就知道怎么回事了,你只要会C那一个,你一看一个例子你就会了,知道吗?
09:17
好,还有什么技术,还有什这样控制型的技术有很多种,最最经典的一个就这个对ru这个用了很多年,知还是SURPRISE1,呃,应该用最典型的一个控制层的技术,用了很多年,就我们当当时一开始这个学这个Java做开发的时候,我们当时就用SPA1,用了好多年,但是后来什么慢慢被取代了,慢慢被取代了,为什么被取代了?因为这些技术都是不断发展呢,就是精益求精的,所以像这些技术有的越来越不合时宜了,其实他做的严格来讲他甚至比MC做的好。它是最典型的控制的技术啊,这网好,到后来又推了一个四叉套啊,四叉二这样网啊,422在他基础之上又做了一些这个做了一些改进啊,做了一些改进,但是大家大家用的话都是大同小异啊,就是某一些细节问题上知道吗?这个啊,某一些细节问题啊,这个被这个呃做了一些这个优化,总之他们的优化的这个呃,目的都是一样的,干什么让程序啊提高开发效率,有些不必要的代码不用写了,做个简单配置就行了,就这个意思知道吧。
10:29
啊,这是我们说的,这其实大家还有一个技术,还有一个叫web work,这是最最早的一个叫web work,最早的一个控制层的框架,就我们其实刚一开始学的是应该学的是学的这个,这个用了没没多长时间就被他取代了。最一开始外部开发的时候都是用service service,随着这种这个项目的规模越来越大,Serve不满足,满足不了要求了,所以出现了这种技术,这种技术用了两年啊,用这个技术,这个用了很多年,慢慢产生了它。
11:02
产生了它,然后呢,也产生了它,其实他俩基本上是同一个时代产生的。当时一直形成竞争,他俩一直形成竞争。就一开始他俩产生之前都用这。这是我们说他俩一直形成结能啊,其实他做的也很好,而且他的思想跟死亡FC都是类似,他俩虽然SURPRISE12,他俩的思想其实差别很大。他俩的思想其实是一样的,就类似的。啊,这是我们说是这样,当然具体怎么我们不给大家说,就是说太多了,因为我们没有这么多时间,大家知道这些技术就行了,慢慢下来都用它了啊,其实他他做的并不比他差,他俩累,他俩都差不多啊。而且用法都差不多,那你说老师现在有用它,现在也有一些企业在用它,但是大多数企业都在用它啊,为什么都在用它啊,因为我们后边什么这些技术都要被去整合去。啊,Spring整合spring VC跟spring他俩是一个公司开发的,所以将来整合的时候他能做的无缝对接懂吗?所以比较整合的时候比较方便,Spring和spring VC他们都有容器,都是基于容器的啊是都是基于spring容器的,所以说大概我们说它整合的比较好,所以慢慢呢。
12:15
再一个记住慢慢现在越来这个越来越边缘化,现在现在也有一些个别的企业在用,但是你知道他们也在用啊,但是用法而且都是类似的就行了,知吧,但我们就以它为例,这是我们说到这是控制能技术,我们就给他家说到这儿吧,好,这是我们这个,我们这个啊,我们这个CRM项目,我们就采用什么MC了,明白吧,好,这是我们这,那你说老是企业,企业里边不可能用它的啊,不可能用它。你以后做开发的时候,你可能几年都写过一个是吗?不可能让你直接写sorry的,要不管用哪个技术,反正就是不用,不管用哪个框架,肯定会用框架,不太可能直接用sorry,好,这是我们说的,这是这个控制层,我们就给他说到这儿,下边来我们来看业务层,业务层主要来干什么。
13:06
对于业务的。啊对,处理业务就处理具体业务的,就他就处理处理的,那么处理整个一处理业务逻辑的是叫处理业务逻辑,叫处理业务逻辑的是吧。哎,处理业务逻辑咋理解?也就是说做一件事儿知道吧,一般都有业务都有逻辑的,怎么有逻辑,第一步做什么,第二步做什么,第三步做什么,就他都有这种内在的逻辑的,你不能说无序的做这个,先做这个也行,先做那个也行,不是这样的,你懂么?做任何一件事都有具体的步骤。都有这种步骤,那么这个业务逻辑,这个业务层就是就就是什么,用来处理第一步做什么,第二步做什么,就就做这个事。啊,因为为什么是有有这种业务逻辑,因为现实世界就有业务逻辑,所以你写代码也要有这种业务逻辑,知道吗?那你比如说大哥我举个例子啊,你比如说我举个例子,假如说我想让你给我,呃,给我做一个功能,这个功能是干什么的?我假如我做一个学生管理系统,我想让你给我做一个功能,这个给我添加一个学生,你应该怎么添加?
14:18
那你肯定是这么来做的啊,这么来做,那就添加学生,那就什么将来就往学生表里边加一条记录吧,知道吗?那我说那按理说就家教记录,但是我有我有要求,我有什么要求说将来添加这个学生记录,万一你添加错了怎么办,我到时候找谁去。那我需要你记录一下谁添加的这个学生给我给我什么记录一下操作日志。这是我的需求,这就是业务,就添加学生,不但要能添加上学生,还能给我记录上谁在什么时间添加的这个学生。这样万一添加错了,我能找到谁添加的知道吗?那这就就是业务逻辑,那这个业务逻辑你要完成添加学生这个业务逻辑是不是你得做两步。
15:06
第一步干什么添加学生,第二步呢?对记录谁添加了?那将来什么添加学生,往学生表里加条记录,然后记录谁添加的,往日志表里添加一条记录。那这个时候大家看这就是一个业务逻辑,这就一个业务逻辑,那将来你做的时候,那你应该怎么做,那你该怎么做呢。首先第一步是不是要添加学生,叫添加学生,就是添加学生,添加学生然后呢,第二步,然后呢,记录操作日志,操作志谁在什么时间,谁在什么时间添加了这个学生,这个学生就这个意思。知道吗?那能不能把他俩这个顺序颠倒了,先记录日志,再添加学生,可不可以?不可以对,为啥不可以?对,你没添加进来,你怎么知道他添加了谁,是不是这样的,所以这里有业务逻辑啊,这有业务逻辑,而且大纲你要做这个功能,虽然你这个顺序写对了,先添加学生,再记录日志,我那么你做的时候,你还得给我保证什么,他俩必须同时成功,同时失败,是不是这样的,你不能说学生填下成功了,日志填错了,那以后我找人找不着了。
16:19
你或者说你不能说学生添加失败了,日日添加,对了,你添加这个人在哪呢?是不是这样子这样,所以说大看他处理业务逻辑呢,业务逻辑主要是什么,解决这个问题就是这不这个业务逻辑什么主要处理业务的步骤顺序以及什么,他的操作的原则性是他主要是处理这个具体来讲叫做处理业务的,处理业务的步骤,那么步骤以及那么以及操作的原子性。原则性,这时候我们说业务层主要是干这个事,我感觉那大家想一想,我们为了干这个事儿,我们说我们学了哪些技术。
17:01
哪有记录?第一步干什么?第二步干什么?是采用什么技术?对,就是Java技术吗?Java SE是吗?就就是你学的最那D不就是调方法吗?是吧,就是调代码是吗?就是调代码,那他调什么调JDBC啊或者调TL的是不是这样的,对这样还什么调这个方法,添加一个学生调这个方法让呢操作日志这样吗。好,这是我们说到这儿啊。好,这是,那你说这个什么,这个我们说这个如何保证原子性,那这个我们到后边这个真正放它调方法的时候,我们将来什么要开启事务,然后呢调把方法都调完了再提交事务,这些我们在这个地方我们先不说,一会儿我们到后边一会儿再给大家提这个好,总之他就是什么处理这种具体业务,那你说在公司里边老师处理业务是不是都是都是用Java SE。多数都是用它,除非一些特别复杂的业务不用加va SE,为什么?因为加va SE,那当调的话,毕竟是你自己调加va单是吧,那比较特别复杂的业务,这这个业务,然后你要是调加固SE是吧,然后呢,做这个什么,第一步调这个,第二步调那个,第二步第三步调第四步调这个,那如果去掉的话,假如十几步你就掉十几个。
18:21
然后呢,调十几个怎么了,那咱人这不不得必须得调吗?关关键是这个业务需要调这十几个,下一个业务也得调这十几个,下一个业务也得调这十几个,你每次都调的话,这些调十几个,四这个调十几个代码,这个功能这些代码又重复了,我们说重复的代码最好不要写,不要重复的写,写一个就行了,所以相关的复杂的业务的时候,还有还有框架知还有框架就是那这它仅仅限于那些特别复杂的业务,什么特别复杂,一般的业务不会这么复杂,呃就有什么样的复杂的业务来,我们就有一类项目,哪一类项目你要是你要毕业之后做什么,做政府的项目,政府大家都知道,他这个政府都有行政级别知吗?还要做一件事,得层层审批,知吗?
19:11
啊,什么假如你吧,这个假如说这个底层的一个职员想做一件事,他得打报告是吧,打报告层层的审批,先给局长审批,局长审批完了是吧,再往下边层层审批什么,处长审批什么等等,再这么到部门领导审批,审批完了他才能做去。那这种审批,每次审批都掉方了,真正你做的出知道吧,那假如这个职员审批了,让另一个职员他做事,他也得审批。然后再一个职员,他他也得审批,做另一件事他也得审批,所以这就重复的调吗?而且审批根据每一层领导审批的意见不一样,下级领导审批的这个意见,根据上级领导只是意见来做不同的审批,是吧。审批的意见不一样,还得什么这什么,在往下一级审批的时候,他这个流程就不一样了,调的方法也就不一样了,所以这种业务就比较复杂了啊,当然现在大家可能说的时候,你没做的话,可能感觉比较空洞是吧,当然你要真正做这一类项目的话,你知道吧,你光用Java SE调的话,你自己就掉晕了。
20:16
为什么?因为一个领导他有好几个审批意见,他有可能这一种意见,有可能另一个意见,不同的意见,到下一级能够审批的意见就不一样了啊。所以那像这一类业务叫你就调,加完CE你就调晕了,那怎么办呢?他也有相应的框架,但这种框架我们也不讲是,但市面上有这种技术,你为什么不讲,因为这是小众化的技,只有给政府的做项目才会出现这种效果,才会出现这种复杂的业果,但普通的这种民营企业什么之类的,给企普通的企业做项目啊,人家没有这么多审批知吧,哪有这么多审批给企业里边做,做一个项目,哪有这么多领导啊,是吧?啊,所以说他看我说一般的这些技术用不到,只仅仅是做为这些技术,但这些技术大家也了解一下哪些技术是么?这种对Java ice做流程封装的这些技术叫什么,大家可能有听说过,叫什么工作流,是什么工作流,嗯。
21:09
工作流专门处理复杂业务的逻辑的处理的知道吧,他怎么处理的,他主要是把一些流程事先画好,哪一个流程调哪一个流,哪一个环节调哪一个环节,然后呢,哪一个环节调哪一个环节,然后呢,上一个环节不同的结果啊,不同的结果会那么直接调用下边自动调下边不同的其他的环节知道吧,根据上一环节结果自动调下边知道吧,他要画这种流程图啊,当然这个我们也不给大家说那么多,大家简单了解一下工作流就是为了嘛,处理这种复杂业务逻辑的知道吧,这是我们说到这个啊,那也就是说大哥你到工你在网上也能看到类似的这些记录,或者到招聘网站上有的个别的这些岗位需要你了解工作流知道吧,或者说你面试的时候,人家问你用过工作流吗?啊。
22:00
那你打装。嗯。了解用对了解务没业务是吧,对对,因为我们做业务没有做过这么复杂的业务是吧?啊所以说呢,我们就平时没没呃没实际开发的时候用过,平时了解过是吧?对,所以说大家我们这工作流,工作流也有很多框架是吧,最典型的框架叫这个activity是吧,是框架。啊,还有什么JBPM这些框架。啊,大家你知道这些技术,呃,你你以后你不要把自己当成新手了,你以后叫什么,就是大家以后毕业的时候你是么?你简历上要写什么,有两到三年的开发经验,知吧,所以你现在你不要把自己当成新手了,你你是老程序员了是吧,最起码是个终级程序员了,所以你在这个行业已经混了两三年了,知道,所以这些技术你应该听听说过,哪怕你没用过,你也应该听说过,知吧,你也应该知道他是干什么的,知道吧。你要说啥都没听说过,那那就到时候面试的就完蛋了啊好,这时候我们这个地方好,这个时候业务层我们就给大家讲,说到这这是业务层好。
我来说两句