一、简略阐明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
上面咱们来一步一步剖析,外面有什么货色