日志位置
mybatis-spring-1.2.2.jar==>org.mybatis.spring.mapper.ClassPathMapperScanner(158)
项目启动
myBatis开始按照下面的配置扫描包
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
<property name="basePackage" value="xx.xxx"/>
</bean>
ClassPathMapperScanner.doScan("xx.xxx")
basePackage可以配置多个。用“,”隔开。
ClassPathBeanDefinitionScanner.doScan
开始扫描
ClassPathScanningCandidateComponentProvider.findCandidateComponents(basePackage);
String packageSearchPath = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX +resolveBasePackage(basePackage) + '/' + this.resourcePattern;
ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX; // classpath*:
resolveBasePackage(basePackage); // xx/xxx
this.resourcePattern; // **/*.class
// 最终结果
"classpath*:xx/xxx/**/*.class"
扫描出来一堆class
Resource[] resources = this.resourcePatternResolver.getResources(packageSearchPath);
循环resources ,然后校验是否可读。
resource.isReadable()
当然了。最终结果当然是不可读的。
下面有日志打印。
if (traceEnabled) {
logger.trace("Ignored because not readable: " + resource);
}
最后也没弄明白为什么扫描不到。
只知道不可读,然后接结束了。











网友评论