00:00
这基础配置我们写完以后,接下来看一下如何整合马蒂斯。那么这个整合马贝蒂斯,我们先搞清楚我们这个整合的,咱们这个目的。我们将spring和马贝斯整合的目的,第一个目的就是我们spring来管理所有组件。管理。所有组件。哎,包括我们的这些,咱们这实现实现类这样的话呢,我们一管以后以后我们这些service service层,我们业务逻辑层。要调用我们这个do的时候,我们只需要啊,使用我们spring提供的一咱们这个依赖注入啊,直接一个O。让它呢,自动自动咱们这个注入我们这个map,这样就避免了我们每次要用一个map操作增删改查之前还要先获取circle session factory circle session factor在啊open session,从session中再get member这么一堆操作,好第二个目的呢,也是我们这个spring用来管理事务。
01:13
因为我们知道这个spring中啊,这个声明式事物是非常强大的。比如说呢,我们也希望spring用来管理事物,那接下来我们就来看一下如何整合。整合啊,这个呢,大家可以结合MY与spring整合的这个官方文档,哎,点进来,点击这个文档里边呢,这就有一个,哎,Getting start。快速开始教你怎么整合,先引入这个炸包,然后呢给spring配置文件中再配一个circle session翻水并等等等等一些文档呢,大家可以往下看,包括呢,教你如何给loc容器中注入各种map。而且呢,我们这个spring它还有一个非常贴心的操作,我们来看啊,在我们马贝蒂斯这个项目里边,他除过提供了跟的这个整合文档外,直接往下翻。
02:07
有一个街这个呢,就直接是一个整合演示项目,哎,使用马贝蒂斯跟spring的一个整合演示,我们就直接点进来。点进来看他把咱们这个spring配置文件里边怎么写,与马贝斯的整合,我们搬过来就行了。好。进入src。我们来看一下它是如何写的,好慢,里边我们来看它的这个文件里边如何编写好web APP。这里边呢,Web web info,这里边有一个application contest面。好,这里边呢,我们来看啊,首先呢,它啊配置了一个数据源,这个数据源呢,是一个嵌入式自己内嵌的,我们不用管,然后呢,就还是咱们这个,呃,事物管理器行,我们还忘了没写事务管理理器,嗯。
03:03
Spring该如何管理事务还是怎么整就行了。spring事务管理。好,我们把spring的事务管理器配出来。Class,这个呢,就是叫啊,我们这个事物管理器叫source trans manager my贝蒂呢也是用这个事物管理器跟S工整合的时候,用这个事物管理器好走。我名呢,假设就叫这个source manager。而事务管理器要能控住事物,那呢,它就得控住啊,数据库连接池里边的所有连接,连接的提交以及关闭啊,以及开启都是我们管理器来控制的,这样达到事务控制的目的,好,我们这样的话呢,让他来控制我们一个data source,使用事务管理器里边data source属性,哎,指定我们这个事物管理器来控制这个数据源。好,我们接下来再来看这一块配置,先完了,我们来看马贝蒂斯的相关配置。
04:06
这一块呢,我们来看来我们这一块呢,它扫描所有的业务逻辑组件和开启基于注解的事物,我们也来开引入TX名称空间好。然后呢,我们来开启基于注解的事物。T drive,只不过呢,我们这一块得注意一下transition manager,我们我们的名没叫transition manager,我们叫data source transition manager。好,这个ID呢,不一样,我们就来指定上,如果ID一样,我们就可以在这块不写传3MANAGER属性。这一块呢,是开启。开启基于注解啊,咱们这个事好,我们再来看。再来看它剩下的配置,哎,就剩了简单的两个配置,第一个配置,哎说data source,诶这个data source呢,配置一个数据源,也就说呢,它配了一个circle session,并拿它来指定数据源。
05:04
哎,我们也可以这么来做。ID。啊,有一个class啊,它呢叫CIRC session factory being,好,这个CIRC factory being呢。来,我们来说一下,点进去。这个circle session factor being,它实现了我们spring规定的factor being接口,只要实现了这些接口的类都是一个工厂类,Spring会调用里面的get object方法,我们来找,诶,就是这个方法来创建对象,我们来看创建出的就是circle session对象。所以说呢,这个工厂类会创建出。哎,它呢是会创建出创建出咱们这个circle session。对象。哎,这一步相当于就是让spring ic1启动就代替我们自己去创建session factor对象,我们要自己创建,那就得写好多,我们之前的这一块,要拿出circle session factor,我们拿到留用circle session factor build等等得创建好多,接下来呢,我们只需要这个配置来让它spring来创建。
06:20
好,我们使用属性来有一个data source来指定数据源。好,我们用这个数据源,这样的话呢,Spring帮我们创建好的s session factor对象里边的数据源,就是用的spring提供的数据源,包括还有一些其他,比如呢啊,Type ilices,我们这个别名处理器,我们这个别名的包在哪里们别名也可以在这写,相当于啊这一块呢,创建出的这个circle session fair里边的所有信息,我们以前是在全局配置文件里边定义的,我们现在直接都可以定义成它的这个circle session翻病的这些属性。
07:01
完了以后呢,我们配置文件就可以没有了。所以呢,我们就可以把它删掉,但是呢,我们一般还是建议留下。哎,但是留下的话呢,就配置文件里边就不写这么多的信息了,哎,像这些setting经常要动来动去的,我们可以留下。哎,把这些呢都删掉,特别是我们这个环境配置,我们要用的数据源,这些都是死不认的,哎,我们在配置文件里边就不写了。那么这些呢,我们也都留下。把这个呢,我们删掉啊,留下一些啊,咱们这个呢,不太常用的这些配置啊,或者呢,经常要动一动的这些配置,那这样的话呢,我们接下来还可以拥有另外一些属性name来看啊,有一个叫conflict location。来指定配置文件的位置,这样我们就可以结合配置文件的内容,结合属性的内容创建一个circle session对象。他致电。
08:01
配置文件的,咱们这个位置。这个呢,是咱们这个全局配置文件的。所以说呢,我们来指定一下啊,Y6全局配置文件呢,它就在我们class pass啊当前的啊类路径下到咱们这个。包括呢,我们再来看,哎,他这一块就完了,没有啥了,他用了一个马贝蒂斯磁战来扫描所有map,我们一会儿来说它。如果要用我们这个官方文档提供的这种方式,那大家呢,就把这个马蒂得跟我们这个do接口改成一模一样的名字,如果不一样,我们可以用这种方式。来指定。指定咱们这个文件的位置。好,相当于之前配置文件里边的所有内容都搬家到这了,Map的位置正好往下放,你看啊,这有map locations,你看其他database ID provider,比如transition manager type,这都能在配置文件里写的,都可以在这。
09:06
好,Locations。它就是指定文件的位置。好,我们把它一指定,让我们马贝斯就能自动找到这些位置。Wedding。接下来呢,我们这些位置也在我们这个类路径下class pass下的。Class said my be。下。来,我们是这下边的所有插文件,哎,都是新的插面,都是我们要用的这个map文件啊,这个我们就写出来了,接下来第二步。第二步,第二步呢,有一个标签叫马贝蒂scan,哎,它呢是scan for member,就是扫描所有的member,让他们呢可以自动注入,哎,就说呢这个。我们应该扫描所有的接口。
10:03
的咱们这个实现,让这些让这些啊,能够能够咱们这个啊自动注入。比如说以后我们要使用do接口这些map的时候,我们直接使用这个自动入入,哎,所以说我们正期望有这个功能,那就来写上它。在这个name space里边呢,就有一个马贝蒂spring,好这个约束我们在这里边呢,哎引入,哎有一个标签叫马贝SKY,好,他来扫描我们所有的do接口。哎,虽然这报错,但是能用的啊。大家可以不用管。这报错呢,只是这个约束里边引入有问题报的错,那么这个best package啊,它呢,就是。指定。Map接口的。接口。到咱们这个报名好,这样的话呢,全部就都自动注入了,接下来我们就测试一下。
11:03
包括这一块的写法,我们以前呢,还有这种写法。哪种写法呢?这里边儿有一个,我们配一个B。Class这个呢叫member,哎,我们来看一下啊,它叫member。哎,Scanner con就是map,咱们这个扫描配置,它跟我们上面这个配置也是一样的,它里边呢有一个属性就叫,哎,我们这个呢,Best package啊,也就说呢,指定我们这个报名。Do接口的报名。也就是说他。这么两个配置。哎,用上边的或者用下边的都行,下边的呢,建议一些老板的项目喜欢这么来用,既然人家都提供这个标签了,一步到位,那我就就用它吧。好,但是下边呢,能制定一些更多的规则,好,我们直接用上边不要报错,我们可以忽略啊,然后呢,我们接下来就进行一个测试。
我来说两句