`
raymond.chen
  • 浏览: 1426571 次
  • 性别: 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,包括处理...

    mybatis通用mapper

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

    mybatis逆向生成mapper

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

    spring-boot+tk.mybatis通用mapper

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

    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 {} ``` 最后,我们可以...

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

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

    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的Mapper文件

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

    SpringBoot2.X整合Mybatis代码示例

    接下来,我们需要创建一个配置类以扫描Mapper接口: ```java @Configuration public class MybatisConfig { @Autowired private DataSource dataSource; @Bean public SqlSessionFactory sqlSessionFactory() ...

    spring mybatis 通用mapper 和分页插件的集成

    -- 扫描MyBatis的Mapper接口 --> <mybatis:scan base-package="com.example.mapper"/> ``` **步骤3:配置通用Mapper** 在MyBatis的配置文件(mybatis-config.xml)中,引入通用Mapper的配置: ```xml ...

    MyBatis 基于Mapper的增删改查示例(Spring IOC注入)

    MyBatis的主要组件包括SqlSessionFactory、SqlSession和Mapper接口。SqlSessionFactory是MyBatis的核心,用于创建SqlSession对象,SqlSession则负责与数据库交互。Mapper接口则提供了SQL语句的封装,使得业务逻辑...

    Spring+myBatis 整合两种方法,一种是dao 整合,一种是mapper接口代理

    本教程将详细介绍如何将Spring与MyBatis进行整合,包括两种不同的方法:DAO整合和Mapper接口代理。 首先,我们需要搭建基本的项目环境。项目结构通常包括`.classpath`、`.project`等IDE配置文件,`src`源代码目录,...

Global site tag (gtag.js) - Google Analytics