public class FlexSqlSessionFactoryBean
extends org.mybatis.spring.SqlSessionFactoryBean
implements org.springframework.beans.factory.FactoryBean<org.apache.ibatis.session.SqlSessionFactory>, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>
在 MyBatis 官方的 SqlSessionFactoryBean 基础上,替换了 FlexSqlSessionFactoryBean。
源于 SqlSessionFactoryBean
,主要是用于构建 FlexConfiguration
,而不是使用原生的 Configuration
。
此代码主要是用于修改 buildSqlSessionFactory()
部分。
Constructor and Description |
---|
FlexSqlSessionFactoryBean() |
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet() |
protected org.apache.ibatis.session.SqlSessionFactory |
buildSqlSessionFactory()
Build a
SqlSessionFactory instance. |
org.apache.ibatis.cache.Cache |
getCache()
Gets the Cache.
|
org.apache.ibatis.mapping.DatabaseIdProvider |
getDatabaseIdProvider()
Gets the DatabaseIdProvider
|
org.apache.ibatis.session.SqlSessionFactory |
getObject() |
Class<? extends org.apache.ibatis.session.SqlSessionFactory> |
getObjectType() |
Class<? extends org.apache.ibatis.io.VFS> |
getVfs()
Gets the VFS.
|
boolean |
isSingleton() |
void |
onApplicationEvent(org.springframework.context.event.ContextRefreshedEvent event) |
void |
setCache(org.apache.ibatis.cache.Cache cache)
Sets the Cache.
|
void |
setConfigLocation(org.springframework.core.io.Resource configLocation)
Set the location of the MyBatis
SqlSessionFactory config file. |
void |
setConfiguration(org.apache.ibatis.session.Configuration configuration)
Set a customized MyBatis configuration.
|
void |
setConfigurationProperties(Properties sqlSessionFactoryProperties)
Set optional properties to be passed into the SqlSession configuration, as alternative to a
<properties> tag in the configuration xml file. |
void |
setDatabaseIdProvider(org.apache.ibatis.mapping.DatabaseIdProvider databaseIdProvider)
Sets the DatabaseIdProvider.
|
void |
setDataSource(DataSource dataSource)
Set the JDBC
DataSource that this instance should manage transactions for. |
void |
setDefaultEnumTypeHandler(Class<? extends org.apache.ibatis.type.TypeHandler> defaultEnumTypeHandler)
Set the default type handler class for enum.
|
void |
setDefaultScriptingLanguageDriver(Class<? extends org.apache.ibatis.scripting.LanguageDriver> defaultScriptingLanguageDriver)
Set a default scripting language driver class.
|
void |
setEnvironment(String environment)
NOTE: This class overrides any
Environment you have set in the MyBatis config file. |
void |
setFailFast(boolean failFast)
If true, a final check is done on Configuration to assure that all mapped statements are fully loaded and there is
no one still pending to resolve includes.
|
void |
setMapperLocations(org.springframework.core.io.Resource... mapperLocations)
Set locations of MyBatis mapper files that are going to be merged into the
SqlSessionFactory configuration
at runtime. |
void |
setObjectFactory(org.apache.ibatis.reflection.factory.ObjectFactory objectFactory)
Sets the ObjectFactory.
|
void |
setObjectWrapperFactory(org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory objectWrapperFactory)
Sets the ObjectWrapperFactory.
|
void |
setPlugins(org.apache.ibatis.plugin.Interceptor... plugins)
Mybatis plugin list.
|
void |
setScriptingLanguageDrivers(org.apache.ibatis.scripting.LanguageDriver... scriptingLanguageDrivers)
Set scripting language drivers.
|
void |
setSqlSessionFactoryBuilder(org.apache.ibatis.session.SqlSessionFactoryBuilder sqlSessionFactoryBuilder)
Sets the
SqlSessionFactoryBuilder to use when creating the SqlSessionFactory . |
void |
setTransactionFactory(org.apache.ibatis.transaction.TransactionFactory transactionFactory)
Set the MyBatis TransactionFactory to use.
|
void |
setTypeAliases(Class<?>... typeAliases)
List of type aliases to register.
|
void |
setTypeAliasesPackage(String typeAliasesPackage)
Packages to search for type aliases.
|
void |
setTypeAliasesSuperType(Class<?> typeAliasesSuperType)
Super class which domain objects have to extend to have a type alias created.
|
void |
setTypeHandlers(org.apache.ibatis.type.TypeHandler<?>... typeHandlers)
Set type handlers.
|
void |
setTypeHandlersPackage(String typeHandlersPackage)
Packages to search for type handlers.
|
void |
setVfs(Class<? extends org.apache.ibatis.io.VFS> vfs)
Sets the VFS.
|
addMapperLocations, addPlugins, addScriptingLanguageDrivers, addTypeAliases, addTypeHandlers
public void setObjectFactory(org.apache.ibatis.reflection.factory.ObjectFactory objectFactory)
setObjectFactory
in class org.mybatis.spring.SqlSessionFactoryBean
objectFactory
- a custom ObjectFactorypublic void setObjectWrapperFactory(org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory objectWrapperFactory)
setObjectWrapperFactory
in class org.mybatis.spring.SqlSessionFactoryBean
objectWrapperFactory
- a specified ObjectWrapperFactorypublic org.apache.ibatis.mapping.DatabaseIdProvider getDatabaseIdProvider()
getDatabaseIdProvider
in class org.mybatis.spring.SqlSessionFactoryBean
public void setDatabaseIdProvider(org.apache.ibatis.mapping.DatabaseIdProvider databaseIdProvider)
setDatabaseIdProvider
in class org.mybatis.spring.SqlSessionFactoryBean
databaseIdProvider
- a DatabaseIdProviderpublic Class<? extends org.apache.ibatis.io.VFS> getVfs()
getVfs
in class org.mybatis.spring.SqlSessionFactoryBean
public void setVfs(Class<? extends org.apache.ibatis.io.VFS> vfs)
setVfs
in class org.mybatis.spring.SqlSessionFactoryBean
vfs
- a VFSpublic org.apache.ibatis.cache.Cache getCache()
getCache
in class org.mybatis.spring.SqlSessionFactoryBean
public void setCache(org.apache.ibatis.cache.Cache cache)
setCache
in class org.mybatis.spring.SqlSessionFactoryBean
cache
- a Cachepublic void setPlugins(org.apache.ibatis.plugin.Interceptor... plugins)
setPlugins
in class org.mybatis.spring.SqlSessionFactoryBean
plugins
- list of pluginspublic void setTypeAliasesPackage(String typeAliasesPackage)
Since 2.0.1, allow to specify a wildcard such as com.example.*.model
.
setTypeAliasesPackage
in class org.mybatis.spring.SqlSessionFactoryBean
typeAliasesPackage
- package to scan for domain objectspublic void setTypeAliasesSuperType(Class<?> typeAliasesSuperType)
setTypeAliasesSuperType
in class org.mybatis.spring.SqlSessionFactoryBean
typeAliasesSuperType
- super class for domain objectspublic void setTypeHandlersPackage(String typeHandlersPackage)
Since 2.0.1, allow to specify a wildcard such as com.example.*.typehandler
.
setTypeHandlersPackage
in class org.mybatis.spring.SqlSessionFactoryBean
typeHandlersPackage
- package to scan for type handlerspublic void setTypeHandlers(org.apache.ibatis.type.TypeHandler<?>... typeHandlers)
MappedTypes
and optionally with MappedJdbcTypes
setTypeHandlers
in class org.mybatis.spring.SqlSessionFactoryBean
typeHandlers
- Type handler listpublic void setDefaultEnumTypeHandler(Class<? extends org.apache.ibatis.type.TypeHandler> defaultEnumTypeHandler)
setDefaultEnumTypeHandler
in class org.mybatis.spring.SqlSessionFactoryBean
defaultEnumTypeHandler
- The default type handler class for enumpublic void setTypeAliases(Class<?>... typeAliases)
Alias
setTypeAliases
in class org.mybatis.spring.SqlSessionFactoryBean
typeAliases
- Type aliases listpublic void setFailFast(boolean failFast)
setFailFast
in class org.mybatis.spring.SqlSessionFactoryBean
failFast
- enable failFastpublic void setConfigLocation(org.springframework.core.io.Resource configLocation)
SqlSessionFactory
config file. A typical value is
"WEB-INF/mybatis-configuration.xml".setConfigLocation
in class org.mybatis.spring.SqlSessionFactoryBean
configLocation
- a location the MyBatis config filepublic void setConfiguration(org.apache.ibatis.session.Configuration configuration)
setConfiguration
in class org.mybatis.spring.SqlSessionFactoryBean
configuration
- MyBatis configurationpublic void setMapperLocations(org.springframework.core.io.Resource... mapperLocations)
SqlSessionFactory
configuration
at runtime.
This is an alternative to specifying "<sqlmapper>" entries in an MyBatis config file. This property being based on Spring's resource abstraction also allows for specifying resource patterns here: e.g. "classpath*:sqlmap/*-mapper.xml".
setMapperLocations
in class org.mybatis.spring.SqlSessionFactoryBean
mapperLocations
- location of MyBatis mapper filespublic void setConfigurationProperties(Properties sqlSessionFactoryProperties)
<properties>
tag in the configuration xml file. This will be used to resolve placeholders in the
config file.setConfigurationProperties
in class org.mybatis.spring.SqlSessionFactoryBean
sqlSessionFactoryProperties
- optional properties for the SqlSessionFactorypublic void setDataSource(DataSource dataSource)
DataSource
that this instance should manage transactions for. The DataSource
should
match the one used by the SqlSessionFactory
: for example, you could specify the same JNDI DataSource for
both.
A transactional JDBC Connection
for this DataSource
will be provided to application code accessing
this DataSource
directly via DataSourceUtils
or DataSourceTransactionManager
.
The DataSource
specified here should be the target DataSource
to manage transactions for, not a
TransactionAwareDataSourceProxy
. Only data access code may work with
TransactionAwareDataSourceProxy
, while the transaction manager needs to work on the underlying target
DataSource
. If there's nevertheless a TransactionAwareDataSourceProxy
passed in, it will be
unwrapped to extract its target DataSource
.
setDataSource
in class org.mybatis.spring.SqlSessionFactoryBean
dataSource
- a JDBC DataSource
public void setSqlSessionFactoryBuilder(org.apache.ibatis.session.SqlSessionFactoryBuilder sqlSessionFactoryBuilder)
SqlSessionFactoryBuilder
to use when creating the SqlSessionFactory
.
This is mainly meant for testing so that mock SqlSessionFactory classes can be injected. By default,
SqlSessionFactoryBuilder
creates DefaultSqlSessionFactory
instances.
setSqlSessionFactoryBuilder
in class org.mybatis.spring.SqlSessionFactoryBean
sqlSessionFactoryBuilder
- a SqlSessionFactoryBuilderpublic void setTransactionFactory(org.apache.ibatis.transaction.TransactionFactory transactionFactory)
SpringManagedTransactionFactory
The default SpringManagedTransactionFactory
should be appropriate for all cases: be it Spring transaction
management, EJB CMT or plain JTA. If there is no active transaction, SqlSession operations will execute SQL
statements non-transactionally.
It is strongly recommended to use the default TransactionFactory
. If not used, any attempt at
getting an SqlSession through Spring's MyBatis framework will throw an exception if a transaction is active.
setTransactionFactory
in class org.mybatis.spring.SqlSessionFactoryBean
transactionFactory
- the MyBatis TransactionFactorySpringManagedTransactionFactory
public void setEnvironment(String environment)
Environment
you have set in the MyBatis config file. This is
used only as a placeholder name. The default value is SqlSessionFactoryBean.class.getSimpleName()
.setEnvironment
in class org.mybatis.spring.SqlSessionFactoryBean
environment
- the environment namepublic void setScriptingLanguageDrivers(org.apache.ibatis.scripting.LanguageDriver... scriptingLanguageDrivers)
setScriptingLanguageDrivers
in class org.mybatis.spring.SqlSessionFactoryBean
scriptingLanguageDrivers
- scripting language driverspublic void setDefaultScriptingLanguageDriver(Class<? extends org.apache.ibatis.scripting.LanguageDriver> defaultScriptingLanguageDriver)
setDefaultScriptingLanguageDriver
in class org.mybatis.spring.SqlSessionFactoryBean
defaultScriptingLanguageDriver
- A default scripting language driver classpublic void afterPropertiesSet() throws Exception
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
afterPropertiesSet
in class org.mybatis.spring.SqlSessionFactoryBean
Exception
protected org.apache.ibatis.session.SqlSessionFactory buildSqlSessionFactory() throws Exception
SqlSessionFactory
instance.
The default implementation uses the standard MyBatis XMLConfigBuilder
API to build a
SqlSessionFactory
instance based on a Reader. Since 1.3.0, it can be specified a Configuration
instance directly(without config file).
buildSqlSessionFactory
in class org.mybatis.spring.SqlSessionFactoryBean
Exception
- if configuration is failedpublic org.apache.ibatis.session.SqlSessionFactory getObject() throws Exception
getObject
in interface org.springframework.beans.factory.FactoryBean<org.apache.ibatis.session.SqlSessionFactory>
getObject
in class org.mybatis.spring.SqlSessionFactoryBean
Exception
public Class<? extends org.apache.ibatis.session.SqlSessionFactory> getObjectType()
getObjectType
in interface org.springframework.beans.factory.FactoryBean<org.apache.ibatis.session.SqlSessionFactory>
getObjectType
in class org.mybatis.spring.SqlSessionFactoryBean
public boolean isSingleton()
isSingleton
in interface org.springframework.beans.factory.FactoryBean<org.apache.ibatis.session.SqlSessionFactory>
isSingleton
in class org.mybatis.spring.SqlSessionFactoryBean
public void onApplicationEvent(org.springframework.context.event.ContextRefreshedEvent event)
onApplicationEvent
in interface org.springframework.context.ApplicationListener<org.springframework.context.event.ContextRefreshedEvent>
onApplicationEvent
in class org.mybatis.spring.SqlSessionFactoryBean
Copyright © 2024. All rights reserved.