一、简略说明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
下面咱们来一步一步分析,里面有什么东西
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。