spring boot啓動讀取並初始化mybatis mapper

在Configuration類上我們一般會加上

@MapperScan(basePackages = "com.hunqingplatform.hunqing.dao.mapper1.ext",sqlSessionFactoryRef="sqlSessionFactory")這樣的註解,點進該註解你會看到該註解又被@Import註解給註解了

@Import註解是往spring容器中導入一些bean實例的,作用和在類上加上@Componet註解差不多,這裏向spring容器里加入了

MapperScannerRegistrar類。從名字就可以猜得到它是向spring裏掃描註冊mapper的。點進該類查看源碼。發現該類實現了ImportBeanDefinitionRegistrar接口,看jdk doc說該接口的作用是註冊額外的BeanDefinition在處理Configuration類的時候。在實現方法registerBeanDefinitions體內,new了一個ClassPathMapperScanner類用來掃描讀取mapper接口,而ClassPathMapperScanner又繼承ClassPathBeanDefinitionScanner實際是委託它的父類來掃描獲取mapper的BeanDefinition。到這mapper的BeanDefiniton加載就暫時告一段落。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章