現(xiàn)在使用Mybatis一般是如下結(jié)構(gòu):
1刀疙、定義DataSource舔痕;
2魏滚、定義SqlSessionFactory镀首;
3、定義MapperScannerConfigurer鼠次;
完成之后更哄,Dao層的接口其實(shí)就可以工作了,熟悉Spring的同學(xué)應(yīng)該知道腥寇,這時(shí)成翩,Mybatis肯定在當(dāng)前的 Context 容器中為你的每一個(gè) Mapper 接口都注冊的一個(gè) Bean,才能在容器里面使用這些 DaoBean赦役,到底是如何注冊進(jìn)去的呢麻敌?
1、MapperScannerConfigurer這個(gè)類實(shí)現(xiàn)BeanDefinitionRegistryPostProcessor接口掂摔,MapperScannerConfigurer在容器
BeanDefinitionRegistryPostProcessor接口术羔,從名稱上看就能知道大概意思:在容器注冊完BeanDefinition的時(shí)候調(diào)用的接口赢赊,開發(fā)者可以在接口內(nèi)繼續(xù)注冊其他我們想要的BeanDefinition,只要往容器中添加一個(gè)實(shí)現(xiàn)了該接口的Bean级历,容器在啟動的時(shí)候
是Spring用來在容器初始化的時(shí)候释移,方便開發(fā)者對當(dāng)前容器內(nèi)的?