org.mybatis.spring.annotation
Annotation Type MapperScan


@Retention(value=RUNTIME)
@Target(value=TYPE)
@Documented
@Import(value=MapperScannerRegistrar.class)
public @interface MapperScan

Use this annotation to register MyBatis mapper interfaces when using Java Config. It performs when same work as MapperScannerConfigurer via MapperScannerRegistrar.

Configuration example:

 @Configuration
 @MapperScan("org.mybatis.spring.sample.mapper")
 public class AppConfig {

   @Bean
   public DataSource dataSource() {
     return new EmbeddedDatabaseBuilder()
              .addScript("schema.sql")
              .build();
   }

   @Bean
   public DataSourceTransactionManager transactionManager() {
     return new DataSourceTransactionManager(dataSource());
   }

   @Bean
   public SqlSessionFactory sqlSessionFactory() throws Exception {
     SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
     sessionFactory.setDataSource(dataSource());
     return sessionFactory.getObject();
   }
 }
 

Since:
1.2.0
Version:
$Id$
Author:
Michael Lanyon, Eduardo Macarron
See Also:
MapperScannerRegistrar, MapperFactoryBean

Optional Element Summary
 Class<? extends Annotation> annotationClass
          This property specifies the annotation that the scanner will search for.
 Class<?>[] basePackageClasses
          Type-safe alternative to basePackages() for specifying the packages to scan for annotated components.
 String[] basePackages
          Base packages to scan for MyBatis interfaces.
 Class<?> markerInterface
          This property specifies the parent that the scanner will search for.
 Class<? extends org.springframework.beans.factory.support.BeanNameGenerator> nameGenerator
          The BeanNameGenerator class to be used for naming detected components within the Spring container.
 String sqlSessionFactoryRef
          Specifies which SqlSessionFactory to use in the case that there is more than one in the spring context.
 String sqlSessionTemplateRef
          Specifies which SqlSessionTemplate to use in the case that there is more than one in the spring context.
 String[] value
          Alias for the basePackages() attribute.
 

value

public abstract String[] value
Alias for the basePackages() attribute. Allows for more concise annotation declarations e.g.: @EnableMyBatisMapperScanner("org.my.pkg") instead of {@code

Default:
{}

basePackages

public abstract String[] basePackages
Base packages to scan for MyBatis interfaces. Note that only interfaces with at least one method will be registered; concrete classes will be ignored.

Default:
{}

basePackageClasses

public abstract Class<?>[] basePackageClasses
Type-safe alternative to basePackages() for specifying the packages to scan for annotated components. The package of each class specified will be scanned.

Consider creating a special no-op marker class or interface in each package that serves no purpose other than being referenced by this attribute.

Default:
{}

nameGenerator

public abstract Class<? extends org.springframework.beans.factory.support.BeanNameGenerator> nameGenerator
The BeanNameGenerator class to be used for naming detected components within the Spring container.

Default:
org.springframework.beans.factory.support.BeanNameGenerator.class

annotationClass

public abstract Class<? extends Annotation> annotationClass
This property specifies the annotation that the scanner will search for.

The scanner will register all interfaces in the base package that also have the specified annotation.

Note this can be combined with markerInterface.

Default:
java.lang.annotation.Annotation.class

markerInterface

public abstract Class<?> markerInterface
This property specifies the parent that the scanner will search for.

The scanner will register all interfaces in the base package that also have the specified interface class as a parent.

Note this can be combined with annotationClass.

Default:
java.lang.Class.class

sqlSessionTemplateRef

public abstract String sqlSessionTemplateRef
Specifies which SqlSessionTemplate to use in the case that there is more than one in the spring context. Usually this is only needed when you have more than one datasource.

Default:
""

sqlSessionFactoryRef

public abstract String sqlSessionFactoryRef
Specifies which SqlSessionFactory to use in the case that there is more than one in the spring context. Usually this is only needed when you have more than one datasource.

Default:
""


Copyright © 2010-2013 MyBatis.org. All Rights Reserved.