java.lang.Object
org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider
org.springframework.context.annotation.ClassPathBeanDefinitionScanner
org.miaixz.bus.starter.mapper.ClassPathMapperScanner
- All Implemented Interfaces:
org.springframework.beans.factory.Aware,org.springframework.context.ResourceLoaderAware,org.springframework.core.env.EnvironmentCapable
public class ClassPathMapperScanner
extends org.springframework.context.annotation.ClassPathBeanDefinitionScanner
MyBatis映射器扫描器,通过包路径、注解或标记接口注册映射器 支持指定注解或接口过滤,禁用搜索所有接口时仅扫描指定类型
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields inherited from class org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider
IGNORE_CLASSFORMAT_PROPERTY_NAME, logger -
Constructor Summary
ConstructorsConstructorDescriptionClassPathMapperScanner(org.springframework.beans.factory.support.BeanDefinitionRegistry registry) 构造函数,初始化映射器扫描器 -
Method Summary
Modifier and TypeMethodDescriptionprotected booleancheckCandidate(String beanName, org.springframework.beans.factory.config.BeanDefinition beanDefinition) 检查候选Bean,防止重复定义Set<org.springframework.beans.factory.config.BeanDefinitionHolder> 扫描指定包路径,注册映射器Bean 如果未找到映射器,记录警告日志;否则处理Bean定义protected booleanisCandidateComponent(org.springframework.beans.factory.annotation.AnnotatedBeanDefinition beanDefinition) 判断是否为候选组件,仅限接口且独立void配置扫描过滤器,设置搜索的接口或注解规则 支持注解、标记接口或默认扫描所有接口,排除package-info.javavoidsetAnnotationClass(Class<? extends Annotation> annotationClass) 设置扫描的注解类型voidsetMapperBuilderBeanName(String mapperBuilderBeanName) 设置MapperBuilder的Bean名称voidsetMapperFactoryBean(MapperFactoryBean<?> mapperFactoryBean) 设置MapperFactoryBeanvoidsetMarkerInterface(Class<?> markerInterface) 设置标记接口voidsetSqlSessionFactory(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory) 设置SqlSessionFactoryvoidsetSqlSessionFactoryBeanName(String sqlSessionFactoryBeanName) 设置SqlSessionFactory的Bean名称voidsetSqlSessionTemplate(org.mybatis.spring.SqlSessionTemplate sqlSessionTemplate) 设置SqlSessionTemplatevoidsetSqlSessionTemplateBeanName(String sqlSessionTemplateBeanName) 设置SqlSessionTemplate的Bean名称Methods inherited from class org.springframework.context.annotation.ClassPathBeanDefinitionScanner
getBeanDefinitionDefaults, getRegistry, isCompatible, postProcessBeanDefinition, registerBeanDefinition, scan, setAutowireCandidatePatterns, setBeanDefinitionDefaults, setBeanNameGenerator, setIncludeAnnotationConfig, setScopedProxyMode, setScopeMetadataResolverMethods inherited from class org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider
addExcludeFilter, addIncludeFilter, clearCache, findCandidateComponents, getEnvironment, getMetadataReaderFactory, getResourceLoader, isCandidateComponent, registerDefaultFilters, resetFilters, resolveBasePackage, setEnvironment, setMetadataReaderFactory, setResourceLoader, setResourcePattern
-
Constructor Details
-
ClassPathMapperScanner
public ClassPathMapperScanner(org.springframework.beans.factory.support.BeanDefinitionRegistry registry) 构造函数,初始化映射器扫描器- Parameters:
registry- Spring Bean定义注册器
-
-
Method Details
-
registerFilters
public void registerFilters()配置扫描过滤器,设置搜索的接口或注解规则 支持注解、标记接口或默认扫描所有接口,排除package-info.java -
doScan
public Set<org.springframework.beans.factory.config.BeanDefinitionHolder> doScan(String... basePackages) 扫描指定包路径,注册映射器Bean 如果未找到映射器,记录警告日志;否则处理Bean定义- Overrides:
doScanin classorg.springframework.context.annotation.ClassPathBeanDefinitionScanner- Parameters:
basePackages- 扫描的基础包路径- Returns:
- 注册的Bean定义集合
-
isCandidateComponent
protected boolean isCandidateComponent(org.springframework.beans.factory.annotation.AnnotatedBeanDefinition beanDefinition) 判断是否为候选组件,仅限接口且独立- Overrides:
isCandidateComponentin classorg.springframework.context.annotation.ClassPathScanningCandidateComponentProvider- Parameters:
beanDefinition- Bean定义- Returns:
- 是否为候选组件
-
checkCandidate
protected boolean checkCandidate(String beanName, org.springframework.beans.factory.config.BeanDefinition beanDefinition) 检查候选Bean,防止重复定义- Overrides:
checkCandidatein classorg.springframework.context.annotation.ClassPathBeanDefinitionScanner- Parameters:
beanName- Bean名称beanDefinition- Bean定义- Returns:
- 是否为有效候选
-
setAnnotationClass
设置扫描的注解类型- Parameters:
annotationClass- 注解类
-
setMapperFactoryBean
设置MapperFactoryBean- Parameters:
mapperFactoryBean- Mapper工厂Bean
-
setMapperBuilderBeanName
设置MapperBuilder的Bean名称- Parameters:
mapperBuilderBeanName- MapperBuilder的Bean名称
-
setMarkerInterface
设置标记接口- Parameters:
markerInterface- 标记接口
-
setSqlSessionFactory
public void setSqlSessionFactory(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory) 设置SqlSessionFactory- Parameters:
sqlSessionFactory- SqlSession工厂
-
setSqlSessionFactoryBeanName
设置SqlSessionFactory的Bean名称- Parameters:
sqlSessionFactoryBeanName- SqlSessionFactory的Bean名称
-
setSqlSessionTemplate
public void setSqlSessionTemplate(org.mybatis.spring.SqlSessionTemplate sqlSessionTemplate) 设置SqlSessionTemplate- Parameters:
sqlSessionTemplate- SqlSession模板
-
setSqlSessionTemplateBeanName
设置SqlSessionTemplate的Bean名称- Parameters:
sqlSessionTemplateBeanName- SqlSessionTemplate的Bean名称
-