InitializingBean
org.springframework.beans.factory.InitializingBean
在所有的properties被注入完成后会调用实现类的方法:void afterPropertiesSet()
mybatis配置的org.mybatis.spring.SqlSessionFactoryBean
就是通过实现InitializingBean
来完成SqlSessionFactory
的初始化。
BeanDefinitionRegistryPostProcessor
org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor
实现该接口的类可以在void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)
方法里完成bean的注册。
mybatis配置的org.mybatis.spring.mapper.MapperScannerConfigurer
就是实现此接口,扫描指定目录下的dao类,完成dao实例化并注册到spring容器里。
FactoryBean
org.springframework.beans.factory.FactoryBean
FactoryBean是一个工厂bean,实现它可以自己创建bean。
mybatis的MapperFactoryBean
就是实现了它,然后在我们真正调用dao接口的时候,创建接口代理对象,该对象持有SqlSession,然后通过SqlSession执行sql语句。
未完待续