00:00
好,那下面呢,我们是不是就可以来搭建咱们的买be体框架了,对吧?那my be体框架大家应该都还有印象吧,然后我们有两个非常核心的一个内容,然后第一个就是咱们的核心配置文件,还有一个就是咱们的map接口和映射文件,对不对,对吧?好,那我们来找到咱们的resource,然后咱们既然要搭建my be,那我们首先就要创建它的核心配置文件,然后咱们来找到咱们的这一个模板,叫my be-config,然后呢,咱们的配置文件的名字咱们也叫做my be-config就可以啊好,点击OK,然后大家看,你看这里面东西是不是比较多,这是啥?引入properties文件,这是我们的全局配置,然后这是我们的类型别名,然后这是我们当前连接数据库的环境,然后这个是我们来引入咱们买be的映射文件,对不对,好啊行,然后那我们现在呢,然后咱们把它给创建出来之后。
01:00
那我们下面咱们是不是就要创建咱们的map了,对不对,Map接口和映射文件,比如说我在这呢,来创建一个类,然后呢,这个类咱们把它给放在map下,然后叫做map点,叫emlo,叫emlo map,那大家都知道在我们的买杯体中,咱们是面向接口来执行测口语句的,所以说在这咱们需要有实现类吗?不需要咱们直接创建一个接口就行啊好,然后这个既然是接口,那咱们也没有必要在上面接去加这个aator re perity这个注解,因为我们现在咱们去管理这个map接口的对象,我们不是通过这个注解来管理的,咱们是通过咱们配置文件中的一个标签来进行配置的啊好,下面呢,我们再来看这个map接口创建完之后,那我们是不是要来创建它所对应的映射文件,那我们的映射文件呢?咱们说了是不是要跟我们当前咱们的map接口所在的包一样,而且映射。
02:00
文件的名字要跟map接口的名字一致,对不对,所以说咱们把它给创建到resource之下,然后咱们创建一个目录,因为这里面没有包,大家有印象吧,叫什么com斜线at硅博,然后斜线,然后SSM,然后斜线map呀,Map。好,创建完之后,咱们再来创建它所对应的映射文件,叫买be斯杠map这个模板啊,点击OK就可以对以吧,然后要保证我们当前com.I的硅谷,点S sm.map然后点e employee map,要保证咱们映射文件的命名空间,然后跟我们当前咱map接口的全类名一致。能看懂吧,好,OK。好,那咱们配置到这儿就完了吗?不是啊,然后如果咱们要是这样去配置的话,大家说你操作的时候麻烦不麻烦呀,那是相当的麻烦,因为我们每一次咱们去操作买be,大家都知道我们需要来加载核心配置文件,来获取一个circle session factory builder,再通过circle session factory builder来创建circle session factory,然后再通过circle session factory来创建咱们的circle session对象,是不是啊,对吧?所以说呢,我们当前咱们的circle session对象大家注意,那我们如果说我们还是按照以前的方式的话,那我们需要干什么?大家说我们是不是需要在control里面去访问service,在service中,然后来获取我们的circle session对象,获取完circle session对象,还需要来获取我们的map接口的这个代理实现类对象,然后获取完这个对象,咱们是不是才可以来调用我们map接口中的方法去执行一个搜口尾去,对吧,那所以说呢,就老。
03:46
麻烦了对吧,好,然后所以我们现在呢,咱们就可以干什么呢?大家想,那你的circle session,包括咱们的circle session factory,你像这东西它不就是一个什么一个对象吗?那所以我们是不是就可以将它交给谁来管理啊,交给我们当前的spring来进行管理,对不对。
04:05
对吧,大家想一下你的circle session factory,还有咱们的circle session,它不都是一个对象,那我们都可以交给咱们的什么呀,都可以交给我们当前的spring来进行管理,OK吧,行。那下面呢,我们就来完成一下。我们当前spring去整合买be的过程,它是怎么去整合的呢?大家注意非常简单,我们只要只需要通过两个标签就可以实现,知道吧,首先第一个啊,咱们需要来配置一个什么叫做circle session,然后factory病,这就是我刚才跟大家提到过的,这是由我们,这是由我们的那个my bet-spring这个价包提供的,叫做circle session factory be,然后这个东西它是干什么的呢?大家注意这这东西就是一个factory be吗?对不对?Factory ban大家还有印象吧,是一个工厂病,它的特殊之处在于哪儿?当我们把circle session factory ban,然后配置到我们当前的IOC容器之后,然后我们可以直接。
05:11
来获取当前这个工厂B所提供的对象,而不是我们当前这个factory b本身的对象,我们可以直接来获取他所提供的对象啊,来大家看怎么去配置,然后在这咱们来写一个。并标签,然后它的class,然后咱们就叫做circle session factory b,大家注意就在这呢啊,你看它的包叫org,点买点spring OK,然后我们现在呢,大家注意这个B咱们就配置好了,它需不需要设置ID,不需要,而且这个东西它也不是,它也不是由我们自己去访问的。当然咱们也可以去访问啊,知道吧,好,然后下面呢,大家再来看,那我们既然要来创建这个B,那我们就先来看一下这个工厂B吧,它到底是干啥的啊,咱们把它给点开。
06:02
然后大家看一下,你看它实现了一个factory b,然后呢,这个factory ban,然后它的泛型是circle session factory,那咱们看到这如果大家还对这个东西有印象的话,那我们是不是就知道了这个circle session factory b,它所提供的对象就是circle session factory。大家说是不是,而我们之前呢,然后咱们在讲工厂病的时候,咱们说过他跟我们当前的一个普通工厂有什么区别,如果你现在你有一个普通的工厂,那我们把这个工厂配置到咱们的IOC容器中,你是得先获取IOC,再获取工厂的这一个病,然后再通过这个工厂来获取我们当前工厂所提供的对象,而如果我们现在用的直接就是工厂病的话,当大家把这个类型配置到IOC容器中,我们可以省略一个什么步骤,获取工厂的步骤,我们可以直接来获取这个工厂所提供的对象。
07:03
能听懂吧?可以直接在IOC容器中来获取这个工厂所提供的对象。他提供的是谁?这里面有三个抽象方法,大家记不记得,一个叫get object,一个叫做get object type,一个叫做什么,叫做is single。Get object这个方法的返回值就是我们能从IOC容器中所获得的对象get object type,来大家看,你看这个接口里面啊,三个方法吗?Get object get object type,这个是用来设置我们当前咱们的这个这个所提供的对象的类型,这是是否单例is single是不是?那所以我们只需要把当前这个类的结构给打开,你去找找它的get object,你去找找get object的方法,你看看吗?它不就在这了吗?是不是?所以说大家只要看到这个方法,你就知道当前的提供的是谁了吗?当前我们把这个factory b配置到IOC容器中之后,它为我们所提供的一个IOC容器中,咱们就可以直接获取谁了,叫做circle session factory对象。
08:14
能听懂吧。OK啊,也就是说当我们现在把这个factory ban配置到我们的IOC容器中之后,我们就可以直接在IOC容器中去获取哪一个对象circle session factory对象OK吧,选啊来在这,然后咱们配置circle session factory b对吧,然后可以直接直接然后在咱们的spring。Spring的IOC中对吧,然后来获取什么对象,叫做circle session factory对象,OK啊,行,那所以说大家想想我有了这个病之后,那我是不是就知道我这个该怎么去用了,大家还需不需要,哎,在我们的service的实现类中去写一大堆代码,先获取配置核心配置文件的这个输入流,再创建circle session factory build,再创建circle session factory,再创建circle session,然后再创建map接口的对象,再调用方法需不需要,不需要我们就可以直接在我们当前的service里面怎么定,大家注意,直接out well的直接自动装配一个什么看好啊,叫做circle session factory,直接去自动装配它了。
09:29
能看懂不?大家注意,咱们在这就可以直接自动装配一个circle session factory对象了,然后呢,所以我们在service的各个方法里面,我们是不是直接来访问它,通过点open session方法获取circle session对象,然后通过circle session来获取map接口的对象,然后再来调用方法,这是不是就简单多了,对不对,对吧?好啊,像当然呢,这不是我们最终使用的方式,大家要知道你配完这个标签之后,它有什么作用,每一个标签咱们配置出来之后,它是干什么的,大家一定要知道,知道吧,好啊,所以说呢,咱们把它配置完之后,咱们就是有这样的一个效果,我们就可以直接从从IOC容器中来获取我们的circle session factory对象,知道吧,行啊,好,那当然了,咱这不是我们最终咱们所使用的一个方式,我们最终用的方式比这更简单,OK吧,好,那我们下面咱们再来看这个问题啊。
10:26
那大家说这个标,也就是说我们当前的这个病呢,就是这个circle session factory b,它是为我们提供什么对象的,叫做circle session对象,那大家说你的circle session对象这个东西。对吧,它是就我们之前,咱们是怎么把它给创建出来的呀,我们是不是需要干什么,先去通过核心配置文件,然后来获取它的输入流,然后呢,再根据它的输入流来获取circle session factory,对不对,对吧,那大家想你看我当我们把咱们的这个circle session factory来交给了spring管理之后,难道它就可以脱离我们之前,然后咱们所说的这个获取过程吗?
11:11
也就是说,我们现在咱们在获取circle session factory的时候,我们就可以不使用这个核心配置文件吗?啊,大家想一下。万变不离其宗,就是说我们不管你之前你在原生的my be中你是怎么来获取的,我们现在咱们把它交给了spring之后,它也是怎么获取的,也就是说我们要想获取circle session factory,你必须得有什么核心配置文件,当然你没有也可以,我们只需要把核心配置文件中的配置,对吧?你在那里面配置了什么对吧?然后咱们在当前spring里面你做一个相同的配置就行,什么意思?大家看啊,来这个并这个这个类中是有一些属性的,比如说大家看好了第一个属性,你看这叫啥叫康飞叫做嗯。
12:01
好,然后叫做config location,大家注意啊,叫config location config是配置,Location叫做路径,叫做配置路径什么意思?就是来设置我们当前咱们的核心配置文件的路径的,也就是说不管我们当前我们是在MY中,你获取circle session factory,还是在我们的spring中,它封装之后获取的过程,我们同样是要通过核心配置文件来获取的,能听懂吧?所以说大家看好咱们在这儿啊,这个东西value,然后class pass,把谁给放进来,把my be杠,Con的叉L给它放进来看好这是干什么,大家注意,然后来设置咱们spring啊,设置我们当前买be的核心配置文件的路径,好。这个大家能看懂吧,所以说我们现在不管你用什么方式来获取它,我们咱们获取的过程它都是一样的,知道吧,行啊好,那下面呢,我们再来看啊,然后呢,大家看一下,你看这里面还有一些其他属性,什么其他属性呢?大家看这个东西叫数据源。
13:14
对吧,这个东西叫做map locationations叫什么?叫做映射文件的路径,然后这个东西呢?然后它叫做configuration,是做全局配置的,这个东西叫plugins,这个东西是我们当前咱们的一个插件,这个东西是我们的类型别名所对应的包,哎,那大家有没有发现在我们去创建咱们的circle session factory b的时候,然后这里面的一些属性啊,是不是跟我们之前在买be的核心配置文件中,然后咱们所配置的一些内容非常的像。就比如说大家看这不是数据源吗。是不是呀,对吧,然后那我们可以在这儿来配置数据源,那大家说我们能在这儿配置吗?当然可以啊,因为我们现在所设置的属性是我们在创建circle session factory的过程中来使用的,知道吧,所以说你这个就是我们在去创建circle session factory的时候,你的这些配置你要么在这儿写,要么在我们MY的核心配置文件去写,都没问题。
14:22
OK吧,好,所以大家注意啊,我说了,我说这个配置文件必须得有,当然你也可以没有,为啥?如果我们当前把这个配置文件中你所有的配置,因为配置文件它也是一个载体,然后咱们说白了,我要想来创建它也我们主要就是来进行什么,来进行我们当前买杯子中的一些配置,大家说对不对,所以说我们只要把配置文件中的一些配置配置好了,我们同样是可以把它创建出来的。那我们之前是把配置的信息放在这个配置文件中,那我们现在既然可以通过我们spring来进行配置,那所以说我们是不是也可以通过这种方式来实现,OK吧,那这个时候如果咱们所有的配置都是通过spring来进行实现的,那这个核心配置文件咱们完全可以不要吗?
15:10
对不对,这个大家注意啊,好,当然呢。这个大家自己看啊,然后如果你感觉这个核心配置文件,咱们设置的你使用的好好的对不对,那你就把,那你还用这个,那如果说你感觉用spring去配置也挺好的,那咱们就用spring配置,或者说呢,你会配置的你就交给spring配置,你不会的你还交给买be去配置也行。OK吧,比如说大家来看这里面有个什么叫数据源呀。对不对,啥叫数据源对吧?那数据源那不就是咱们的my be里面所设置的连接数据库的环境吗?大家看一下在这个位置啊,你看然后是不是这个environment啊,这里面是不是有数据源对不对,那我现在我现在我的创建circle session factory的过程中,我需要有需要用到数据源,而这个东西。
16:01
现在来表示的是我们某一个病中的一个属性。那所以大家想想,我是不是就可以来干什么,引用我们当前IOC容器中的数据源呀,对不对?好,这个大家注意啊,这个是用来干什么的,然后来设置数据源的,好,那我既然我现在数据源我是通过spring来配置的,那大家想想在我当前my be的核心配置文件中,这个标签咱们还要不要了?啊,大家想想这个标签咱们是不是就不要了呀,因为这个标签就是设置连接数据库的环境的,这是事物管理器,咱们也可以交给spring管理,然后这个是咱们的数据源,那我是不是现在数据源我们完全是不是可以通过spring的配spring的配置来进行设置,对不对,所以说大家看这个标签我们就可以不要了,知道吧,那它可以不要了之后,那我们上面咱们在这也像咱们在这来引入这个GDBC.time gd bc.proper意思这个东西咱们是不是也可以不要了。
17:04
能看懂吧,为什么?因为我们当前咱们的这个标签引入的properties文件中的内容,你就是在这个。来大家再看一眼啊,然后就是在我们的data source里面来使用的嘛,对不对,咱们用的也是多大括号键的方式对不对,好所以说啊,那既然我们可以把它交给spring来管理,那我们在my be的核心配置文件中就不需要再设置这个了啊好,OK,行,那下面呢,我们再来看一下其中还有什么其他的一些配置啊。
我来说两句