SpringBoot默认配置原理:MyBatis自动配置解析
今天,我们来分析一下MyBatis的自动配置解析
mybatis的自动配置类不在springboot中,下面搜索不到
需要在pom中添加mybatis的场景启动器
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency>
左侧会增加如下内容:
MybatisAutoConfiguration这个类会被反射加载到程序中
下面:
@Configuration,表示是一个通过注解标注的springBean
@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class})这个注解的意思是:当存在SqlSessionFactory.class, SqlSessionFactoryBean.class这两个类时才解析MybatisAutoConfiguration配置类,否则不解析这个配置类,因为,我们需要mybatis为我们返回会话对象,就必须有会话工厂相关类。
Spring-boot为我们提供了统一的starter可以直接配置好相关的类,触发自动配置所需的依赖(mybatis)
也就是可以保证sqlSessionFactory、sqlSessionTemplate、dataSource等mybatis所需的组件均可被自动配置
点击pom中mybatis的场景启动器:mybatis-spring-boot-starter
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
因为maven依赖的传递性,我们只要依赖starter就可以依赖到所有需要自动配置的类,实现开箱即用的功能。
可以看到调用的MybatisProperties中的set方法
配置文件中的配置和MybatisProperties中的对应
另外,也可以点击下面查看配置文件
原文已更新:https://www.cnblogs.com/uncleyong/p/17092962.html
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!