首页/ 学科题库/ Mytatis/ 与 Spring 集成专题
Mytatis 专题精讲

与 Spring 集成专题

1 篇文章 14 道配套习题

与 Spring 集成专题

专题说明

本专题精选14道代表性题目,系统讲解MyBatis与Spring框架的集成方案,涵盖SqlSessionFactoryBean、SqlSessionTemplate、Mapper接口扫描、声明式事务管理、多数据源配置等核心内容,是企业级MyBatis开发的必备知识。

学习目标

  1. 掌握SqlSessionFactoryBean的配置方式与核心属性
  2. 理解SqlSessionTemplate的线程安全机制
  3. 掌握@MapperScan注解的使用方法与属性配置
  4. 熟悉Spring声明式事务在MyBatis中的应用
  5. 了解多数据源配置与动态数据源路由方案

学习内容

本专题涵盖以下2个知识点:

知识点题目数核心内容
Spring 集成9题SqlSessionFactoryBean、SqlSessionTemplate、Mapper扫描、事务管理
MyBatis-Spring5题自动配置、多数据源、AbstractRoutingDataSource、动态切换

学习建议

  • 先阅读完整指南文章,理解Spring-MyBatis集成的整体架构
  • 重点掌握@MapperScan和SqlSessionFactoryBean的配置方式
  • 理解事务管理器的选择与配置
  • 多数据源部分是进阶内容,结合动态数据源路由理解其原理
  • 建议在Spring Boot项目中动手实践配置

配套习题(14 题)

参考答案在文末
判断题
1
判断题

在 Spring 项目中集成 MyBatis 时,必须引入 mybatis-spring 依赖包,否则无法实现两者的集成。

A

对

B

错

2
判断题

Spring 管理 MyBatis 事务时,默认情况下只有 RuntimeException 及其子类会触发事务回滚,检查型异常(Checked Exception)不会触发回滚。

A

对

B

错

3
判断题

在 Spring-MyBatis 多数据源配置中,如果两个数据源位于不同的数据库实例,使用普通的 DataSourceTransactionManager 可以保证跨库操作的原子性和一致性。

A

对

B

错

单选题
4
单选题

在 Spring-MyBatis 集成中,用于创建 SqlSessionFactory 的 Spring Bean 类是哪一个?

A

SqlSessionFactoryBean

B

SqlSessionTemplate

C

MapperScannerConfigurer

D

DataSourceTransactionManager

5
单选题

在 Spring-MyBatis 集成中,要实现声明式事务管理,应该使用哪个事务管理器类?

A

DataSourceTransactionManager

B

JpaTransactionManager

C

HibernateTransactionManager

D

MyBatisTransactionManager

6
单选题

在 Spring 中注入 MyBatis Mapper 接口时,以下哪种方式是推荐的现代做法?

A

使用 @MapperScan 注解批量扫描 Mapper 接口包

B

为每个 Mapper 接口手动编写 @Bean 配置

C

使用 XML 配置文件逐个注册 Mapper

D

通过反射手动创建 Mapper 实例

7
单选题

在 Spring-MyBatis 中配置多数据源时,以下哪种方式是最佳实践?

A

为每个数据源创建独立的 SqlSessionFactory 和 SqlSessionTemplate,并使用 @Qualifier 区分注入

B

在同一个 SqlSessionFactory 中配置多个 DataSource

C

使用 ThreadLocal 手动切换数据源

D

修改 MyBatis 源码支持多数据源

多选题
8
多选题

关于 Spring-MyBatis 多数据源配置,以下哪些说法是正确的?

A

需要为每个数据源配置独立的 SqlSessionFactoryBean

B

可以使用 @Primary 注解标注主要数据源的 Bean

C

多数据源场景下无法使用 Spring 的声明式事务

D

可以通过 AbstractRoutingDataSource 实现动态数据源切换

9
多选题

在 Spring 框架中集成 MyBatis 时,以下哪些是必需或常用的核心配置组件?

A

SqlSessionFactoryBean

B

DataSource

C

MapperScannerConfigurer

D

SqlSessionTemplate

10
多选题

关于 Spring-MyBatis 事务管理集成,以下哪些说法是正确的?

A

可以通过 @Transactional 注解实现声明式事务

B

MyBatis 的 SqlSession 会自动参与 Spring 管理的事务

C

事务传播行为 REQUIRES_NEW 会挂起当前事务并创建新事务

D

使用 SqlSessionTemplate 可以确保同一个事务中使用同一个 SqlSession

11
多选题

关于 MyBatis Mapper 接口在 Spring 中的注入,以下哪些说法是正确的?

A

Mapper 接口不需要提供实现类,MyBatis 会自动创建动态代理

B

可以使用 @Mapper 注解标注单个 Mapper 接口

C

@MapperScan 的 basePackages 属性支持指定多个扫描路径

D

Mapper 接口注入后可以直接在 Service 层通过 @Autowired 注入使用

填空题
12
填空题

在使用 @Configuration 类配置 Spring-MyBatis 集成时,SqlSessionFactoryBean 需要通过 setDataSource 方法设置 ,通过 setTypeAliasesPackage 方法设置 。

13
填空题

@MapperScan 注解中, 属性用于指定 Mapper 接口的扫描包路径, 属性可以限制只扫描带有特定注解的接口。

14
填空题

使用 Spring 的 实现动态数据源切换时,需要重写 方法来返回当前数据源的标识。

参考答案
1.正确 2.正确 3.错误 4.A 5.A 6.A 7.A 8.A;B;D 9.A;B;C;D 10.A;B;C;D 11.A;B;D 12.数据源;类型别名包路径 13.basePackages;annotationClass 14.AbstractRoutingDataSource;determineCurrentLookupKey
想在手机上刷这套专题的真题?
使用微信 卷王开发者小程序/App,首页顶部扫一扫识别二维码,即可解锁本专题全部配套练习与错题本。
了解产品 App
← 上一个专题 TypeHandler 自定义类型处理器专题 下一个专题 → 动态 SQL专题