0
点赞
收藏
分享

微信扫一扫

Spring、MyBatis和SpringMVC的整合

十里一走马 2021-09-30 阅读 88
日记本

不用maven,为什么呢?更好的理解有哪些包,这样更加透彻。当然了,使用maven会更方便一点。

1. jar包管理

2. 整合思路

        spring在进行管理时,是很有条理的,每个层都由spring管理,然后不同的层可以调用其它层,Handler调用service,service调用mapper等。根据这个架构,我们来总结一下整合的思路,根据这个调用关系,我们可以从下往上一步步整合。

            1. 整合dao层。mybatis和spring整合,通过spring管理mapper接口。 

            使用mapper的扫描器自动扫描mapper接口在spring中进行注册。

            2. 整合service层。通过spring管理 service接口。 

            使用配置方式将service接口配置在spring配置文件中。 

            实现事务控制。

            3. 整合springmvc。由于springmvc是spring的模块,不需要整合。

3. 整合dao层

        整合dao层也就是整合持久层,那么需要spring的核心包,持久层包,mybatis包,数据库以及连接池的包。所以将spring-persistence/spring-core/mysql-connector/mybatis/dbcp几个文件夹中的jar包拷贝到lib中。

mybatis全局配置文件

            整合的时候,这个全局配置文件已经很清爽了,因为数据源啊、mapper啥的都交给spring去管理了。

配置Spring配置文件

        配置完了mybatis的全局配置文件后,接下来就要配置spring的配置文件了,spring的配置文件我将分类写在不同的文件中,都放在config/spring/目录下了,这里是对dao的整合,所以起名applicationContext-dao.xml。

             整合dao层的时候主要配置一下数据源、sqlSessionFactory和mapper扫描器,这样的话,数据源,sqlSessionFactory和mapper在tomcat启动时就被spring实例化到了容器中。接下来就是准备po类及mapper了。

逆向工程生成po和mapper,使用逆向工程生成的代码如下:

3. 整合Service层

        service是用来调用mapper的,mapper是用来操作数据库的,其实上面的小插曲中的测试代码就有点类似service层做的事,先获取mapper接口的代理对象,然后操作数据库。

        所以在service层,我们首先要获取mapper接口的代理对象,只不过在这里我们通过spring注入进来,然后通过这个代理对象去操作数据库。下面看一下整个整合的步骤:

先写Service接口

            这个接口和上面那个mapper接口其实是一样的,当然并不是说一定一样,只不过这里要实现的逻辑都一样而已。

Service实现类

            实现类中是通过@Autowired注入itemsMapperCustom,这个itemsMapperCustom是上面那个插曲中定义的一个mapper。

            它会通过spring配的扫描器扫描到,并将对象装到spring容器中,然后在这注入进来,然后调用findItemsList方法来操作数据库。至于itemQueyVo,实际中,是将前台传来的数据封装进来,然后传进来的。这样就打通了service与dao之间的通道了。

配置applicationContext-service.xml

配置applicationContext-transaction.xml

4. 整合springmvc

        配置前端控制器

    配置处理器映射器、处理器适配器和视图解析器

    加在spring容器    在web.xml中添加spring容器监听器,加载spring容器。


参考:https://mp.weixin.qq.com/s/FW5uwYocSh4h0sZbMW1WeA

举报

相关推荐

0 条评论