`
raymond.chen
  • 浏览: 1438186 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Mybatis的Mapper接口类扫描和注册

 
阅读更多

关键注解层次关系:

@SpringBootApplication
	@SpringBootConfiguration
		@Configuration
			@Component
	@EnableAutoConfiguration //启用自动配置功能
		@AutoConfigurationPackage  //自动获取自动配置的basePackage
			@Import(AutoConfigurationPackages.Registrar.class)		//Registrar的默认包路径为Main类所在的包路径
		@Import(AutoConfigurationImportSelector.class)  //加载META-INF/spring.factories文件内容,完成自动配置处理
	@ComponentScan

 

 

Mapper接口类扫描和注册的过程:

mybatis-spring-boot-autoconfigure-1.3.1.jar
  MybatisAutoConfiguration  -  自动配置类,创建SqlSessionFactory、SqlSessionTemplate等Bean
	AutoConfiguredMapperScannerRegistrar  - 扫描出标注有@Mapper注解类的接口类,并注册到Spring容器中
		ClassPathMapperScanner	  


@MapperScan("com.seasy.mybatis.mapper")
	MapperScannerRegistrar  -  基于包路径的Mapper接口类扫描,并注册到Spring容器中
		ClassPathMapperScanner


ClassPathMapperScanner  -  类扫描器,负责扫描指定规则的类,并将SqlSessionFactory、SqlSessionTemplate注入到类中
	MapperFactoryBean - 上述扫描到的Mapper接口类是没有实现类的,都需要通过该工厂Bean获取。工厂Bean初始化后,接口类会添加到SqlSession的Configuration对象中
	  SqlSession  -  通过工厂Bean获取接口类时,是根据接口类的Class对象从SqlSession中获取的
		Configuration
		  MapperRegistry  -  接口类
			|_addMapper  -  添加Mapper接口类时,会封装成MapperProxyFactory对象表示它,并通过MapperAnnotationBuilder加载解析对应的xml配置文件
			|_getMapper  -  获取Mapper接口类对应的MapperProxyFactory对象,并由MapperProxyFactory对象通过JDK动态代理生成代理类
			  MapperProxyFactory  -  通过JDK动态代理方式生成Mapper接口类的代理类
				MapperProxy  -  JDK动态代理的InvocationHandler实现类
				  MapperMethod  -  Mapper接口类中的方法对应的包装类
					INSERT
					UPDATE
					DELETE
					SELECT
					FLUSH

 

 

 

分享到:
评论

相关推荐

    Mybatis Mapper的使用

    3. **Mapper扫描**:在Mybatis的配置文件中,我们需要启用Mapper扫描,指定包含Mapper接口的包,这样Mybatis在启动时会自动发现并加载这些接口。 4. **SqlSession与MapperFactoryBean**:在应用中,通过SqlSession...

    spring和mybatis整合(mapper代理自动扫描方式实现)

    Spring通过MapperScannerConfigurer组件自动扫描并注册Mapper接口。在applicationContext.xml中加入以下配置: ```xml <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> ...

    mybatis Mapper.xml中传参多选 字符串形式逗号分隔 AND中拼接OR.rar

    在实际开发中,你还需要在对应的Java接口和实现类中编写对应的方法,将前端传递的参数正确地绑定到Map对象中,并调用Mybatis的SqlSession执行查询。 总的来说,Mybatis提供了一套灵活的机制来处理动态SQL,包括处理...

    spring-boot+tk.mybatis通用mapper

    在引入tk.mybatis的依赖后,Spring Boot会自动配置相关的Mapper接口和SqlSessionFactory。 1. **添加依赖**: 在`pom.xml`文件中,我们需要添加Spring Boot和tk.mybatis的相关依赖。包括`spring-boot-starter-web`...

    mybatis通用mapper

    - 配置Mapper扫描和数据库连接信息 - 实现Service接口,注入Mapper实例 - 在业务代码中调用Mapper接口的方法 总结起来,MyBatis通用Mapper是MyBatis的一个强大补充,它通过提供预定义的接口和SQL模板,使得...

    mybatis逆向生成mapper

    MyBatis逆向生成Mapper是一项高效实用的开发工具功能,它可以帮助Java开发者快速构建数据库操作的Mapper接口和对应的XML配置文件。在SSM(Spring、SpringMVC、MyBatis)框架中,Mapper是数据库操作的主要接口,而...

    解决SpringBoot整合Mybatis扫描不到Mapper的问题

    在Mapper接口文件上加@Mapper注解,这样可以将Mapper接口类扫描到spring容器中。 解决扫描不到Mapper的问题 --------------------------- 在解决扫描不到Mapper的问题时,我们可以尝试以下方法: 1. 检查Mapper...

    spring boot + mybatis +mapper.xml 项目

    这使得MyBatis与Spring的事务管理可以无缝结合,同时提供Bean的自动扫描和SqlSessionFactory/SqlSessionTemplate的自动注入。 6. **数据库连接配置**: 项目中会包含一个application.properties或application.yml...

    springboot整合mybatis基于mapperXML模式.zip

    在SpringBoot中,我们需要一个配置类来启用MapperScanner,扫描并自动加载所有的Mapper接口: ```java @Configuration @MapperScan("com.example.demo.mapper") public class MyBatisConfig {} ``` 最后,我们可以...

    Mybatis整合通用Dao,Mybatis整合通用Mapper,MyBatis3.x整合通用 Mapper3.5.x

    要整合MyBatis与通用Mapper,我们需要在项目中引入相应的依赖,配置MapperScannerConfigurer扫描Mapper接口,然后在Dao接口上添加通用Mapper的注解,如`@Select`、`@Insert`等。 在实际操作中,我们还需要创建一个...

    Mybatis_SpringMapper

    Spring整合Mybatis后,可以使用MapperScannerConfigurer扫描指定包下的Mapper接口,自动创建并注入Mapper代理对象。 5. **事务管理**:在Spring中,我们可以使用PlatformTransactionManager接口来管理事务。当整合...

    day70 MyBatis使用mapper重构xml文件

    在本教程中,我们将深入探讨如何在MyBatis框架中使用Mapper接口来重构传统的XML配置文件,从而提高代码的可读性和维护性。MyBatis是一个流行的持久层框架,它允许开发者将SQL语句与Java代码分离,提供了一种灵活的...

    Mybatis中配置Mapper的方法

    当项目中Mapper接口较多时,可以使用`org.mybatis.spring.mapper.MapperScannerConfigurer`批量扫描并注册Mapper接口。只需在Spring配置文件中添加以下配置: ```xml <bean class="org.mybatis.spring.mapper....

    利用Mybatis逆向工程来生成pojo和mapper

    Mybatis逆向工程是一种强大的工具,它允许开发者根据数据库中的表结构自动生成对应的Java实体类(POJO)、数据访问对象(DAO)以及Mapper接口和XML配置文件,极大地提高了开发效率,减少了手动编写这些基础代码的...

    idea快速开发工具从mapper进入mybaits

    4. **关联Mapper接口和XML文件**:确保在你的配置文件(通常为`mybatis-config.xml`)中正确配置了Mapper扫描路径,这样Idea才能关联接口和XML文件。如果你使用的是Spring Boot,可以在`application.yml`或`...

    mybatis_plus_demo自动生成实体类,mapper,service,controller

    在本示例中,MyBatis Plus会根据实体类自动生成对应的Mapper接口和XML配置。 3. **Mapper接口(Mapper)** Mapper接口是与数据库进行交互的桥梁,提供了SQL执行的方法。MyBatis Plus的Mapper接口继承了BaseMapper...

    mybatis自动生成mapper.xml文件

    SpringBoot通过MapperScannerConfigurer或@MapperScan注解扫描并自动注册Mapper接口。 5. 使用自动生成的组件:现在,你可以直接在Service或Controller层调用DAO接口的方法,执行数据库操作。MyBatis会根据Mapper....

    mybatis 通用mapper

    如果使用Spring框架,需要增加配置让Spring自动扫描包含继承了自定义Mapper接口的所有接口类,并为它们生成代理对象。配置示例如下: ```xml **.dao"/> ``` 5. **修改(或生成)实体类** 对实体类进行适当的...

    mybatis如何通过接口查找对应的mapper.xml及方法执行详解

    - 在`MapperRegistry.getMapper()`中,MyBatis会检查一个内部的`knownMappers`映射,该映射存储了所有已知的Mapper接口及其对应的代理工厂类(`MapperProxyFactory`)。 - 如果接口尚未注册,`knownMappers`中没有...

    使用逆向工程生成mybatis的Mapper文件

    在MyBatis中,官方提供了一个叫做MyBatis Generator (MBG) 的工具,它可以自动生成Java模型类、Mapper接口以及Mapper XML文件。MBG允许我们通过配置文件定义生成规则,如数据库连接信息、表选择、生成策略等。 生成...

Global site tag (gtag.js) - Google Analytics