提取mybatis mapper接口
public final class MybatisMapperScanner extendsClassPathScanningCandidateComponentProvider {{addIncludeFilter(new AnnotationTypeFilter(Repository.class));// exclude package-info.javaaddExcludeFilter(new TypeFilter() {@Overridepublic boolean match(final MetadataReader metadataReader,final MetadataReaderFactory metadataReaderFactory)throws IOException {final String className = metadataReader.getClassMetadata().getClassName();return className.endsWith("package-info");}});}/** * */public MybatisMapperScanner() {super(false);}/** * ?搜索所有的mybatis mapper * * @param packageName * 包名,如"com.iteye.strongzhu" * * @return 所有的mapper清单 */@SneakyThrows(ClassNotFoundException.class)public Set<Class<Object>> scanMapper(final String packageName) {final Set<BeanDefinition> components = findCandidateComponents(packageName);final Set<Class<Object>> mybatisMapperList = new HashSet<Class<Object>>();for (final BeanDefinition component : components) {@SuppressWarnings("unchecked")final Class<Object> cls = (Class<Object>) Class.forName(component.getBeanClassName());mybatisMapperList.add(cls);}return mybatisMapperList;}/* * (non-Javadoc) * * @see org.springframework.context.annotation. * ClassPathScanningCandidateComponentProvider * #isCandidateComponent(org.springframework * .beans.factory.annotation.AnnotatedBeanDefinition) */@Overrideprotected boolean isCandidateComponent(final AnnotatedBeanDefinition beanDefinition) {return (beanDefinition.getMetadata().isInterface() && beanDefinition.getMetadata().isIndependent());}}
?
?