首页 > 其他分享 >MyBatis自动配置解析

MyBatis自动配置解析

时间:2023-02-05 10:46:33浏览次数:59  
标签:spring 配置 boot mybatis 自动 MyBatis 解析 class starter

今天,我们来分析一下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为我们返回会话对象,就必须有会话工厂相关类。 

 

下面@ConditionalOnMissingBean的含义是如果ioc容器中没有这个对象就创建,有就不执行,也就是不创建了 

 

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>

 

可以看到有如下依赖,导入了下面的依赖,上面条件判断,SqlSessionFactory和SqlSessionFactoryBean就肯定存在了

因为maven依赖的传递性,我们只要依赖starter就可以依赖到所有需要自动配置的类,实现开箱即用的功能。 

配置文件中,点击mapper-locations 

 

可以看到调用的MybatisProperties中的set方法

 

配置文件中的配置和MybatisProperties中的对应

 

另外,也可以点击下面查看配置文件

 

【bak】

原文已更新:https://www.cnblogs.com/uncleyong/p/17092962.html

 

标签:spring,配置,boot,mybatis,自动,MyBatis,解析,class,starter
From: https://www.cnblogs.com/uncleyong/p/17092962.html

相关文章