@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 com.mybatisflex.core.datasource.DataSourceDecipher |
dataSourceDecipher |
protected com.mybatisflex.core.table.DynamicSchemaProcessor |
dynamicSchemaProcessor |
protected com.mybatisflex.core.table.DynamicTableProcessor |
dynamicTableProcessor |
protected org.apache.ibatis.plugin.Interceptor[] |
interceptors |
protected org.apache.ibatis.scripting.LanguageDriver[] |
languageDrivers |
protected static org.slf4j.Logger |
logger |
protected com.mybatisflex.core.logicdelete.LogicDeleteProcessor |
logicDeleteProcessor |
protected MyBatisFlexCustomizer |
mybatisFlexCustomizer |
protected MybatisFlexProperties |
properties |
protected org.springframework.core.io.ResourceLoader |
resourceLoader |
protected List<SqlSessionFactoryBeanCustomizer> |
sqlSessionFactoryBeanCustomizers |
protected com.mybatisflex.core.tenant.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<com.mybatisflex.core.datasource.DataSourceDecipher> dataSourceDecipherProvider,
org.springframework.beans.factory.ObjectProvider<com.mybatisflex.core.table.DynamicTableProcessor> dynamicTableProcessorProvider,
org.springframework.beans.factory.ObjectProvider<com.mybatisflex.core.table.DynamicSchemaProcessor> dynamicSchemaProcessorProvider,
org.springframework.beans.factory.ObjectProvider<com.mybatisflex.core.tenant.TenantFactory> tenantFactoryProvider,
org.springframework.beans.factory.ObjectProvider<com.mybatisflex.core.logicdelete.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 com.mybatisflex.core.datasource.DataSourceDecipher dataSourceDecipher
protected final com.mybatisflex.core.table.DynamicTableProcessor dynamicTableProcessor
protected final com.mybatisflex.core.table.DynamicSchemaProcessor dynamicSchemaProcessor
protected final com.mybatisflex.core.tenant.TenantFactory tenantFactory
protected final com.mybatisflex.core.logicdelete.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<com.mybatisflex.core.datasource.DataSourceDecipher> dataSourceDecipherProvider, org.springframework.beans.factory.ObjectProvider<com.mybatisflex.core.table.DynamicTableProcessor> dynamicTableProcessorProvider, org.springframework.beans.factory.ObjectProvider<com.mybatisflex.core.table.DynamicSchemaProcessor> dynamicSchemaProcessorProvider, org.springframework.beans.factory.ObjectProvider<com.mybatisflex.core.tenant.TenantFactory> tenantFactoryProvider, org.springframework.beans.factory.ObjectProvider<com.mybatisflex.core.logicdelete.LogicDeleteProcessor> logicDeleteProcessorProvider, org.springframework.beans.factory.ObjectProvider<MyBatisFlexCustomizer> mybatisFlexCustomizerProvider)
public void afterPropertiesSet()
afterPropertiesSet
在接口中 org.springframework.beans.factory.InitializingBean
private void checkConfigFileExists()
@Bean @ConditionalOnMissingBean public org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception
Exception
protected 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.