java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot @Configuration、@MapperScan注解

SpringBoot中的@Configuration、@MapperScan注解

作者:楠寻寻

SpringBoot中的@Configuration和@MapperScan注解分别用于配置类和Mapper接口的自动扫描,感兴趣的朋友跟随小编一起看看吧

SpringBoot中的@Configuration、@MapperScan注解

1、@Configuration注解

使用方式:

示例:

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

使用场景:

底层原理:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
    @AliasFor(
        annotation = Component.class
    )
    String value() default "";
    boolean proxyBeanMethods() default true;
}

@Configuration 注解的底层原理:

Spring 容器启动:Spring 容器启动时,会扫描带有 @Configuration 注解的类。

2、@MapperScan注解

使用方式:

在配置类上添加@MapperScan注解,并指定需要扫描的包路径。

示例:

@Configuration
@MapperScan("com.briup.*.mapper")
public class MyBatisConfig {
    // 其他配置
}

使用场景:

底层原理:

 
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
@Documented
@Import({MapperScannerRegistrar.class})
@Repeatable(MapperScans.class)
public @interface MapperScan {
    String[] value() default {};
    String[] basePackages() default {};
    Class<?>[] basePackageClasses() default {};
    Class<? extends BeanNameGenerator> nameGenerator() default BeanNameGenerator.class;
    Class<? extends Annotation> annotationClass() default Annotation.class;
    Class<?> markerInterface() default Class.class;
    String sqlSessionTemplateRef() default "";
    String sqlSessionFactoryRef() default "";
    Class<? extends MapperFactoryBean> factoryBean() default MapperFactoryBean.class;
    String lazyInitialization() default "";
    String defaultScope() default "";
}

注册的Bean会配置为Mybatis的SqlSessionTemplate或SqlSessionDaoSupport的代理对象,从而可以在业务逻辑中直接使用这些Mapper接口。

@MapperScan 注解的底层原理:

总结:

@Configuration 注解:

@MapperScan 注解:

到此这篇关于SpringBoot中的@Configuration、@MapperScan注解的文章就介绍到这了,更多相关SpringBoot中的@Configuration、@MapperScan注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文