一、简略阐明springboot与mybatis的集成
1.springboot外围就是主动加载配置,次要是通过@EnableAutoConfiguration注解

EnableAutoConfiguration次要是通过AutoConfigurationImportSelector来加载,通过反射加载spring.factories中指定的java类。Mybatis引入的主动配置jar包,spring.factories里配置的是MybatisAutoConfiguration类,则springboot启动时,会主动加载MybatisAutoConfiguration,初始化时,会加载mybatis的配置文件,创立sqlSessionFactory等

二、mybatis执行过程剖析
首选上一段代码,执行整个过程,加载mybatis配置文件,创立sqlSessionFactory等,获取mapper的代理类,以及执行对应的办法

try {      //读取配置文件      Reader reader = Resources.getResourceAsReader("com/mat/example/resource/mybatis-config.xml");      //依据mybatis-config配置文件,生成对应的sqlSessionFactory      SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);      //通过sessionFactory创立sqlSession,每次操作数据库都是一个sqlSession      SqlSession sqlSession = sessionFactory.openSession();      //获取UserMapper的代理类,代理类外面包含userMapper.xml的所有办法,其本质就是创立jdbc连贯执行sql,返回数据      UserMapper mapper = sqlSession.getMapper(UserMapper.class);      //执行对应的办法      User user = mapper.getUser(1);      System.out.println(user.getUsername());    } catch (IOException e) {      e.printStackTrace();    }

下面就是mybatis执行的整个过程:

三、mybatis代码加载执行过程剖析
外围就是创立SqlSessionFactory过程,该类有个外部类Configuration,mybatis所有的配置以及mapper.xml文件的配置信息,都会在Configuration外面存着,所有的一切都是为了创立Configuration
上面咱们来一步一步剖析,外面有什么货色