mybatis整合spring
SqlSessionFactoryBean的创建:
SqlSessionFactoryBean这个类实现了三个接口,一个是InitializingBean,另一个是FactoryBean,还有就是ApplicationListener接口。
InitializingBean接口:实现了这个接口,那么当bean初始化的时候,spring就会调用该接口的实现类的afterPropertiesSet方法,初始化sqlSessionFactory。
FactoryBean接口:通过getBean获取它的实例的时候实际是调用他的getObject方法,获取到的是sqlSessionFactory。
ApplicationListener接口:实现了该接口,如果注册了该监听的话,那么就可以了监听到Spring的一些事件,然后做相应的处理。
MapperScannerConfigurer实现了BeanDefinitionRegistryPostProcessor接口,postProcessBeanDefinitionRegistry方法调用。
做完这些,MapperFactoryBean对象也就构造完成了,扫描方式添加dao的工作也完成了。MapperFactoryBean最后返回的是所以mapper接口对象,
然后可以调用对应的方法。
我的理解:首先创建dataSource数据源对象,然后创建所有bean的sqlSessionFactory对象,最后创建所有mapper对象。通过mapper对象调用对应的方法