00:01
好,来看啊,我现在取得代类对象。Public object。Prox。Return。Proxy,行,说点儿。你看哪个像啊,这忘忘忘没了都。是不是这个呀,好,Loader loader。Get get什么class叫累?加载器对吧,好,第2GET class get interfaces对吧,取得所有的接口,那最终传一个this OK吧,其实这两个东西啊,没什么啊,最重要是咱们为什么要传一个这个类加载器呢,同学。这个类加载器是有用的,OK吧,这个类加载器的这个作用是什么呢?就是啊,在我们虚拟机在执行我们这个代码的时候,有效的对我们的这个类型进行一个这个装配,OK吧,咱们这个李四的这个对象是不是在执行的过程当中啊,动态的给我们生成的,能理解吧,所有的这些事儿都是在这个虚拟机中实现的,OK吧,这个类加载器是用来这个装配里是对象的,OK吧,好,至于这些个啊,包括这里边源码的这些东西啊。
01:28
大家现在暂时啊,先不要不需要去看它,就这些东西,你们现在看的就跟看天书一样。OK吧,而且面试的时候不可能考你这种问题,OK吧,好,但是呢,还是给大家一个建议啊,就是比如说一两年之后嘛,对不对,没事看一看这些源码,会对自己的这个面,面向对象这个思想啊,有很大的这个提高,OK吧,反射这种东西还是挺重要,以后你要想面个啊好点的这个工作啊,呃,真的是啊反射。
02:00
还是很重要的,真的真的非常重要,OK吧,咱们现在在走廊里边新贴的那个大榜单看到没排在第一名,王上浩反射学的就不错啊,但是也不行啊啊,今年今年算是比较高了啊,2万块钱啊,两万十六薪2万。16星下课的时候你们可以看一看去啊,往上现这小孩现在在我脑海里边呢啊,上课的时候老活跃了,而且回答问题回答一下客户啊,以前也没有过什么太多的这个基础啊,就是踏踏实实学出来的是吧?行这些东西大家注意啊,请注意老师这个动态代理,咱们用不用背下来用不用同学们。用。这些东西啊,给大家一个要求,比老师写的还要快,这是最低的一个要求,OK吧,你看我是这你们年轻嘛,手速快嘛,对不对,有很多同学都是20多年的手速是吧?啊啊手速应该会很快啊,所以说呢,这个东西啊,必须必须是要背的啊,OK吗?那将来啊,这个如果面试的这个过程当中啊,这个需要考你这种问题,他会以什么样的形式来考,Spring的这个形式来考,其实这个东西我以前不要求大家背啊,啊,尤其是在这个一六年和这个一七年左右,然后尤其是在这个,因为以前不要求大家背这个东西,写完之后,既然是工具,咱们直接用就行了,对吧,而且更重要的是将来它是存在在我们这个spring的这个底层,我们是看不到这些代码。
03:32
OK吧,好,但是呢,这个尤其是去年啊,去年从下半年开始啊,啊,也不知道为什么连续好几家这个面试官就开始问你这种问题。连续好几下啊,然后有学生给我反馈了一下啊,这个东西老师啊,这个幸亏我背了啊,怎么怎么着的啊啊老师这东西我没背啊,当时你也没让我背,确实这样啊,啊这回呢,这个自从一八年这个后半年呢,我所有的这个班我要求肯定都是背的啊,OK吧,好,也就是说将来啊,问你spring的这个底层啊spring啊,咱们这个JDK动态代理这个底层,不是让你说这个底层,同学们注意啊,不是让你说这个啊,不让你说这个。
04:16
知道吗?让你说spring啊A那个动态代理那个底层让你说的就是今天老师给你写这个,你把它给我描述出来就行了,就是满分了,能理解吧,好,这个东西啊,一定要背下来,好嗯,在这里边啊,咱们拢一拢啊,同学们啊,他给的是张三对吧。张三好,这个是什么?这个是什么?其实是代理类的什么呀?方法是这样吗?代理类的业务方法好,那么咱们的这个method的点引光可执行的是真正我们业务层实现类的业务方法是这样吗?好呃,传递啊,我们当前这个对象啊,当前对象来调当前的这个业务方法,对吧?然后把我们这个参数啊传递进去啊,提交回滚,这个没什么好说的啊,需要注意的一点是什么呢?我们取得代理类的对象一定是要通过这一句话来完成,OK吧,这一句话不要求大家现在理解的多深,因为对于我们现在才学习两个月左右的人来讲的话,这些东西啊啊,如果我想要给你们讲深了,这个咱们今天一上午都不够用,OK吧,但是没有必要OK吧啊讲也听不懂OK吧,所以说你就知道这句话是干嘛用的就行了呢。
05:38
这句话是干嘛用的,取得代理类对象就取得李四对象就行了,OK吧,好,这个需要注意了啊,好。这个最后一个要求是啥来着,这个咱们是不是得得背下来,得记下来啊,对不对,好啊,东西背多了啊,而且以后用多了,用着用着你就知道有些东西是为什么了,OK吧,好啊,除此之外啊,老师来创建一个工厂啊,同学们。
06:07
啊,这个工厂你也可以不创建啊,我创建这个工厂就是为了方便的取得代理对象,OK吧,嗯,来一个service。Factory啊,V c fary service factory。好,来个get service吧。咱们这个工厂啊,这个方法啊,是一个什么呢,传。D、张三对象得到李四对象的过程,OK吧,对象。的过程,好,那很明显这个service是张三对象嘛,对吧,呃,传张三对象取李四对象啊。
07:05
Return。溜出来一个transaction in handler,咱们是不是应该把这个张三传递进去啊?请告诉我。这句话给我返回的是李四对象吗?是吗是吗?不是啊,刚说完,那李四对象是不是必须得用这句话得到啊,对吧,所以说还得给我调个什么。Get OK吧,这是必须的啊。这个咱们还是做个标注吧,啊,这个是取得。李四,对象啊,OK吧,行。这三个工序啊,没别的啊,正好咱们这个礼拜几礼拜。礼拜天是不是后天嘛,对不对,哎,后天啊,今天能背一遍差不多啊,但是明天肯定忘,然后后天再背两遍啊。
08:10
时间,把自己时间安排好了啊,来接下来啊,咱们可以写这个倒成了同学们啊,写倒层这些东西我先关了啊。对于这个倒层的这个写法啊,我们先来一个接口student。D no,好,它这个命名你不能乱命名啊,必须是咱们doin啊,实体类的名字,加上大写的D,小写的AO,变成咱们这个接口的方法,OK吧,比如说我们现在就来两个啊,增删改查,拿两个很经典的当例子啊,一个是什么呢?根据ID啊反单条咱们来个get by。ID string ID好,还有一个咱们做一个添加操作,添加操作我暂时写了一个word,我们一会观察表OK吧,啊,当我们开发那个CRM项目的时候,咱们再返这个in,这个先不着急啊,来一个save,咱们是不是得传一个student呀?
09:11
OK啊行,倒层的这个实现类啊,六出来一个package。IMPL。Student d,好,Student。好。以前在道层里边,咱们是不是得玩JDBC了,这回玩什么?我靠,那个那个框架的名还不会变呢,MYT啊,有同学my my my circle。
10:00
框架的名字叫MYT啊,同学们啊,我们现在用my bet来代替原始的这个接力利息的操作,OK吧?好,所以说首先我们是不是得先把这个circle session拿到,对吧?呃,来一个叫什么circle session you get一个session对吧?好,来一个session.select one对吧?好,TEST1,咱们来个get。By ID这个我没写呢啊,一会儿写啊,咱传一个先不能写死啊,传个ID啊对不对。ID啊。反个单条OK吧。行,下边的这个save呢,这个更简单了,我再来一个session,大家注意,这个session你不能写成咱们这个成变量,这个session呢,必须是每一次调这个方法session,这个绘画都得重新拿到一个,OK吧,好,这个是必须的啊。
11:03
来三拿到之后这个来三点。是吧,Save insert insert好,来一个test 1.save,然后里边我们来一个。OK。好想吗?有同学说没写完呢,这块咱们得来个赛点是吗?用不用?想。用不用?
12:00
你得给我想,我们现在是在哪一层啊?是不是在倒腾啊?我们应该在道层提交事物吗?不是吧,咱们是不是永远是在什么service业务层来提交事务啊?是这样吗?如果你在道层提交事务,会造成什么结果?你你完成一件事,一整套业务逻辑,有可能你掉了八次倒层,你每一次调倒层,你如果在倒层提交事务了,你每一次调到都是一次什么事物从开启到提交的全过程,那你这八步相当于什么?提交了八次事务,是这样吗?我现在想要干嘛呀?让这八八个倒层的操作融入到统一的一个事务操作当中,是这样吗?你给我记住啊,不管我们以后啊,学习了多么高级的,多么高端的技术,比如说我们以后学习这个生命式事物啊等等等等,你永远给我记住一点,永远是在业务层service维层。
13:08
懂吧,来提交事物,OK吧,所以说在这啊,大家注意啊,可不允许这么写啊,OK吧,你不能把这个单元操作给他提交事务了,那事物就没有任何意义了。单元操作。相当于什么?是不是它相当于零件啊,这些个单元操作,这些零件共同的组成了我们一整套业务逻辑,是一件事啊,是这样吗?你把单元操作提交事务零没有任何意义了,对吧?好,这一整件事我们应该是一套事务啊,在业务层提交事务行。啊,那接下来啊,咱们就得来写一下这个map啊,这个map啊,老师选择重新写一把,带大家再熟悉熟悉啊。ID,咱们来个get by。Ad,好,Parameter type可写可不写吧?行,咱们先写上啊。
14:04
好,Student来一个,好,咱们好几个项目有呢是吧。来COPY1把啊。其中这个result type是不是必须得写了?好,这个result type是什么啊?这是get BYD对吧?Get BYD咱们应该是一个string对吧?好,咱们来个java.long.string啊。好,Select星from t student where ID等于。ID行吗?这是查询操作,接下来是一个添加操作,添加操作咱们来一个save,除了ID不写别的了,Insert into t BL student和I name和h values。
15:00
ID name,再来一个。可以吧,行,咱们这个倒层啊,就处理完了啊,就处理完了,接下来啊,咱们来这个业务层啊。
我来说两句