博客
关于我
Mybatis-@MapperScan和mybatisscan分析
阅读量:795 次
发布时间:2023-02-09

本文共 1986 字,大约阅读时间需要 6 分钟。

MyBatis-Spring 1.2.0 引入了两种主要的扫描映射器接口

MyBatis-Spring 1.2.0 版本中新增了两种主要的扫描映射器接口,提供了更灵活的方式来注册和管理 MyBatis 映射器。这些功能可以帮助开发者更高效地配置和使用 MyBatis 在 Spring 应用程序中的映射器。

第一种方法是通过 mybatis:scan 元素

mybatis:scan 元素是 MyBatis-Spring 命名空间中的一个关键元素,它允许开发者指定一个以逗号分隔的包名列表,用于搜索包含 MyBatis 映射器接口的类。为了使用这个功能,需要在 Spring 配置文件中添加相应的 schema 声明。以下是一个示例:

通过 mybatis:scan 元素,开发者可以定义以下属性来自定义扫描过程:

  • annotation:扫描器将注册所有在指定 base-package 包内并且带有特定注解的 MyBatis 映射器接口。
  • factory-ref:在有多个 SqlSessionFactory 实例的情况下,指定要使用的特定 SqlSessionFactory。
  • marker-interface:扫描器将注册在 base-package 包内并且继承了特定接口的 MyBatis 映射器接口。
  • template-ref:在有多个 SqlSessionTemplate 实例的情况下,指定要使用的特定 SqlSessionTemplate。
  • name-generator:指定一个 BeanNameGenerator 类,用于命名检测到的组件。
  • basePackageClasses:可选的类型安全替代品,用于指定需要扫描的特定类。
  • 第二种方法是使用 @MapperScan 注解

    从 Spring 3.1 开始版本,@MapperScan 注解提供了一种基于 Java 的配置方式。开发者可以在配置类上使用 @MapperScan 注解,指定需要扫描的包路径。以下是一个示例:

    @Configuration
    @MapperScan("com.mybatis.x.mappers")
    public class AppConfig {
    @Bean
    public DataSource dataSource() {
    return new PooledDataSource("com.mysql.jdbc.Driver",
    "jdbc:mysql://localhost:3306/test",
    "root",
    "root");
    }
    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
    SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
    sessionFactory.setDataSource(dataSource());
    return sessionFactory.getObject();
    }
    }

    @MapperScan 注解提供了多个可定制属性:

  • annotationClass:扫描器将注册所有在指定 base-package 包内并且带有指定注解的 MyBatis 映射器接口。
  • markerInterface:扫描器将注册在 base-package 包内并且继承了特定接口的 MyBatis 映射器接口。
  • sqlSessionFactoryRef:在有多个 SqlSessionFactory 实例的情况下,指定要使用的特定 SqlSessionFactory。
  • sqlSessionTemplateRef:在有多个 SqlSessionTemplate 实例的情况下,指定要使用的特定 SqlSessionTemplate。
  • nameGenerator:指定一个 BeanNameGenerator 类,用于命名检测到的组件。
  • basePackage:指定要扫描的基包路径。
  • basePackageClasses:可选的类型安全替代品,用于指定需要扫描的特定类。
  • 通过这些方法,开发者可以根据实际需求灵活配置 MyBatis 映射器的扫描和注册过程。无论是通过 mybatis:scan 元素还是 @MapperScan 注解,目标都是实现 MyBatis 映射器的高效注册和管理。在实际应用中,建议根据项目需求选择最适合的配置方式,并合理定义相关属性参数。

    转载地址:http://dfffk.baihongyu.com/

    你可能感兴趣的文章
    MolGAN网络架构:用于小分子图的隐式生成模型
    查看>>
    Moment.js
    查看>>
    moment.js常见格式化处理各种时间方法
    查看>>
    Moment.js常见用法总结
    查看>>
    moment时间处理相关小结
    查看>>
    mongo - 正常关闭服务
    查看>>
    mongo db 使用方法
    查看>>
    mongo import 提示`fields cannot be identical: '
    查看>>
    mongo 去重
    查看>>
    MongoDB
    查看>>
    MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)
    查看>>
    MongoDB - 整合 SpringBoot 操作全流程
    查看>>
    MongoDB - 索引底层原理和使用,聚合的使用(案例 + 演示)
    查看>>
    MongoDB 3.0 增删改查及聚合操作,pymongo
    查看>>
    mongoDB 3.0 安全权限访问控制
    查看>>
    MongoDB change stream 详解
    查看>>
    MongoDB Compass connect ECONNREFUSED 127.0.0.1:27017 如何解决
    查看>>
    mongodb linux安装
    查看>>
    MongoDB MapReduce使用
    查看>>
    MongoDB Replica Sets + Sharding 实战
    查看>>