@Configuration(proxyBeanMethods=false)
@ConditionalOnClass(value={org.apache.ibatis.session.SqlSessionFactory.class,org.mybatis.spring.SqlSessionFactoryBean.class})
@ConditionalOnSingleCandidate(value=javax.sql.DataSource.class)
@EnableConfigurationProperties(value=MybatisFlexProperties.class)
@AutoConfigureAfter(value={org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class,MybatisLanguageDriverAutoConfiguration.class})
public class MybatisFlexAutoConfiguration
extends Object
implements org.springframework.beans.factory.InitializingBean
参考 MybatisAutoConfiguration.java
为 Mybatis-Flex 开启自动配置功能,主要修改以下几个方面:
1、替换配置为 mybatis-flex 的配置前缀
2、修改 SqlSessionFactory 为 FlexSqlSessionFactoryBean
3、修改 Configuration 为 FlexConfiguration
| 限定符和类型 | 类和说明 |
|---|---|
static class |
MybatisFlexAutoConfiguration.AutoConfiguredMapperScannerRegistrar
This will just scan the same base package as Spring Boot does.
|
static class |
MybatisFlexAutoConfiguration.MapperScannerRegistrarNotFoundConfiguration
If mapper registering configuration or mapper scanning configuration not present, this configuration allow to scan
mappers based on the same component-scanning path as Spring Boot itself.
|
| 限定符和类型 | 字段和说明 |
|---|---|
protected List<ConfigurationCustomizer> |
configurationCustomizers |
protected org.apache.ibatis.mapping.DatabaseIdProvider |
databaseIdProvider |
protected DataSourceDecipher |
dataSourceDecipher |
protected DynamicSchemaProcessor |
dynamicSchemaProcessor |
protected DynamicTableProcessor |
dynamicTableProcessor |
protected org.apache.ibatis.plugin.Interceptor[] |
interceptors |
protected org.apache.ibatis.scripting.LanguageDriver[] |
languageDrivers |
protected static org.slf4j.Logger |
logger |
protected LogicDeleteProcessor |
logicDeleteProcessor |
protected MyBatisFlexCustomizer |
mybatisFlexCustomizer |
protected MybatisFlexProperties |
properties |
protected org.springframework.core.io.ResourceLoader |
resourceLoader |
protected List<SqlSessionFactoryBeanCustomizer> |
sqlSessionFactoryBeanCustomizers |
protected TenantFactory |
tenantFactory |
protected org.apache.ibatis.type.TypeHandler[] |
typeHandlers |
| 构造器和说明 |
|---|
MybatisFlexAutoConfiguration(MybatisFlexProperties properties,
org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.plugin.Interceptor[]> interceptorsProvider,
org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.type.TypeHandler[]> typeHandlersProvider,
org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.scripting.LanguageDriver[]> languageDriversProvider,
org.springframework.core.io.ResourceLoader resourceLoader,
org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.mapping.DatabaseIdProvider> databaseIdProvider,
org.springframework.beans.factory.ObjectProvider<List<ConfigurationCustomizer>> configurationCustomizersProvider,
org.springframework.beans.factory.ObjectProvider<List<SqlSessionFactoryBeanCustomizer>> sqlSessionFactoryBeanCustomizers,
org.springframework.beans.factory.ObjectProvider<DataSourceDecipher> dataSourceDecipherProvider,
org.springframework.beans.factory.ObjectProvider<DynamicTableProcessor> dynamicTableProcessorProvider,
org.springframework.beans.factory.ObjectProvider<DynamicSchemaProcessor> dynamicSchemaProcessorProvider,
org.springframework.beans.factory.ObjectProvider<TenantFactory> tenantFactoryProvider,
org.springframework.beans.factory.ObjectProvider<LogicDeleteProcessor> logicDeleteProcessorProvider,
org.springframework.beans.factory.ObjectProvider<MyBatisFlexCustomizer> mybatisFlexCustomizerProvider) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
afterPropertiesSet() |
protected void |
applyConfiguration(org.mybatis.spring.SqlSessionFactoryBean factory) |
protected void |
applySqlSessionFactoryBeanCustomizers(org.mybatis.spring.SqlSessionFactoryBean factory) |
private void |
checkConfigFileExists() |
org.apache.ibatis.session.SqlSessionFactory |
sqlSessionFactory(DataSource dataSource) |
org.mybatis.spring.SqlSessionTemplate |
sqlSessionTemplate(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory) |
protected static final org.slf4j.Logger logger
protected final MybatisFlexProperties properties
protected final org.apache.ibatis.plugin.Interceptor[] interceptors
protected final org.apache.ibatis.type.TypeHandler[] typeHandlers
protected final org.apache.ibatis.scripting.LanguageDriver[] languageDrivers
protected final org.springframework.core.io.ResourceLoader resourceLoader
protected final org.apache.ibatis.mapping.DatabaseIdProvider databaseIdProvider
protected final List<ConfigurationCustomizer> configurationCustomizers
protected final List<SqlSessionFactoryBeanCustomizer> sqlSessionFactoryBeanCustomizers
protected final DataSourceDecipher dataSourceDecipher
protected final DynamicTableProcessor dynamicTableProcessor
protected final DynamicSchemaProcessor dynamicSchemaProcessor
protected final TenantFactory tenantFactory
protected final LogicDeleteProcessor logicDeleteProcessor
protected final MyBatisFlexCustomizer mybatisFlexCustomizer
public MybatisFlexAutoConfiguration(MybatisFlexProperties properties, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.plugin.Interceptor[]> interceptorsProvider, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.type.TypeHandler[]> typeHandlersProvider, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.scripting.LanguageDriver[]> languageDriversProvider, org.springframework.core.io.ResourceLoader resourceLoader, org.springframework.beans.factory.ObjectProvider<org.apache.ibatis.mapping.DatabaseIdProvider> databaseIdProvider, org.springframework.beans.factory.ObjectProvider<List<ConfigurationCustomizer>> configurationCustomizersProvider, org.springframework.beans.factory.ObjectProvider<List<SqlSessionFactoryBeanCustomizer>> sqlSessionFactoryBeanCustomizers, org.springframework.beans.factory.ObjectProvider<DataSourceDecipher> dataSourceDecipherProvider, org.springframework.beans.factory.ObjectProvider<DynamicTableProcessor> dynamicTableProcessorProvider, org.springframework.beans.factory.ObjectProvider<DynamicSchemaProcessor> dynamicSchemaProcessorProvider, org.springframework.beans.factory.ObjectProvider<TenantFactory> tenantFactoryProvider, org.springframework.beans.factory.ObjectProvider<LogicDeleteProcessor> logicDeleteProcessorProvider, org.springframework.beans.factory.ObjectProvider<MyBatisFlexCustomizer> mybatisFlexCustomizerProvider)
public void afterPropertiesSet()
afterPropertiesSet 在接口中 org.springframework.beans.factory.InitializingBeanprivate void checkConfigFileExists()
@Bean @ConditionalOnMissingBean public org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception
Exceptionprotected void applyConfiguration(org.mybatis.spring.SqlSessionFactoryBean factory)
protected void applySqlSessionFactoryBeanCustomizers(org.mybatis.spring.SqlSessionFactoryBean factory)
@Bean @ConditionalOnMissingBean public org.mybatis.spring.SqlSessionTemplate sqlSessionTemplate(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory)
Copyright © 2023. All rights reserved.