Class MapperFactoryBean<T>

java.lang.Object
org.springframework.dao.support.DaoSupport
org.mybatis.spring.support.SqlSessionDaoSupport
org.mybatis.spring.mapper.MapperFactoryBean<T>
All Implemented Interfaces:
org.springframework.beans.factory.FactoryBean<T>, org.springframework.beans.factory.InitializingBean

public class MapperFactoryBean<T> extends SqlSessionDaoSupport implements org.springframework.beans.factory.FactoryBean<T>
BeanFactory that enables injection of MyBatis mapper interfaces. It can be set up with a SqlSessionFactory or a pre-configured SqlSessionTemplate.

Sample configuration:

 
   <bean id="baseMapper" class="org.mybatis.spring.mapper.MapperFactoryBean" abstract="true" lazy-init="true">
     <property name="sqlSessionFactory" ref="sqlSessionFactory" />
   </bean>

   <bean id="oneMapper" parent="baseMapper">
     <property name="mapperInterface" value="my.package.MyMapperInterface" />
   </bean>

   <bean id="anotherMapper" parent="baseMapper">
     <property name="mapperInterface" value="my.package.MyAnotherMapperInterface" />
   </bean>
 
 

Note that this factory can only inject interfaces, not concrete classes.

Author:
Eduardo Macarron
See Also:
  • Constructor Details

    • MapperFactoryBean

      public MapperFactoryBean()
    • MapperFactoryBean

      public MapperFactoryBean(Class<T> mapperInterface)
  • Method Details

    • checkDaoConfig

      protected void checkDaoConfig()
      Overrides:
      checkDaoConfig in class SqlSessionDaoSupport
    • getObject

      public T getObject() throws Exception
      Specified by:
      getObject in interface org.springframework.beans.factory.FactoryBean<T>
      Throws:
      Exception
    • getObjectType

      public Class<T> getObjectType()
      Specified by:
      getObjectType in interface org.springframework.beans.factory.FactoryBean<T>
    • isSingleton

      public boolean isSingleton()
      Specified by:
      isSingleton in interface org.springframework.beans.factory.FactoryBean<T>
    • setMapperInterface

      public void setMapperInterface(Class<T> mapperInterface)
      Sets the mapper interface of the MyBatis mapper
      Parameters:
      mapperInterface - class of the interface
    • getMapperInterface

      public Class<T> getMapperInterface()
      Return the mapper interface of the MyBatis mapper
      Returns:
      class of the interface
    • setAddToConfig

      public void setAddToConfig(boolean addToConfig)
      If addToConfig is false the mapper will not be added to MyBatis. This means it must have been included in mybatis-config.xml.

      If it is true, the mapper will be added to MyBatis in the case it is not already registered.

      By default addToConfig is true.

      Parameters:
      addToConfig - a flag that whether add mapper to MyBatis or not
    • isAddToConfig

      public boolean isAddToConfig()
      Return the flag for addition into MyBatis config.
      Returns:
      true if the mapper will be added to MyBatis in the case it is not already registered.