`
raymond.chen
  • 浏览: 1422272 次
  • 性别: 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 spring配置文件和Mybatis自动生成类所需配置文件

    主要涉及写XML文件和读取...生成的GeneratorConfigXML修改jdbc驱动位置后可直接用使用eclipse的mybatis插件生成mapper接口和映射文件以及实体类。编码方式的不同,注意配置文件的中文注释可能报错,使用时删除即可。

    Java课程实验 Spring Boot 分别整合 MyBatis、JPA

    4.扫描Mapper接口和配置MyBatis: 在Spring Boot入口类上添加@MapperScan注解,指定Mapper接口所在的包。 配置MyBatis相关属性,例如在 application.properties(或 application.yml)中添加 通过以上步骤,可以整合...

    【Spring Boot自学笔记四】整合MyBatis+Druid+使用MyBatis Generator+动态扫描开发

    文章目录添加配置配置pom.xml解决生成后mapper.xml丢失问题配置application.properties配置mybatis-config.xml配置generatorConfig.xml添加连接池配置类MBG逆向工程生成代码解决逆向生成xxxKey和xxxwithBlobs的问题...

    springmybatis

    这个包,并建立接口类 IUserOperation , 内容如下: 程序代码 程序代码 package com.yihaomen.mybatis.inter; import com.yihaomen.mybatis.model.User; public interface IUserOperation { public User ...

    mybatis学习笔记

    4.3.3 Mapper接口定义 37 4.4 动态sql(重点) 37 4.4.1 If 37 4.4.2 Where 38 4.4.3 foreach 38 4.4.4 Sql片段 43 5 关联查询 44 5.1 商品订单数据模型 45 5.2 一对一查询 45 5.2.1 方法一: 46 5.2.2 方法二: 48 ...

    spring+springmvc+mybatis的整合

    MapperScannerConfigurer将扫描basePackage所指定的包下的所有接口类(包括子类), 如果它们在SQL映射文件中定义过,则将它们动态定义为一个Spring Bean, 这样,我们在Service中就可以直接注入映射接口的bean ...

    MybatisDemo:DAO层简化与逆向工程

    1、在Spring配置文件中加入自动扫描Mapper接口的Bean 2、修改xml文件中的namespace为该XML文件的Mapper接口的全限定名,如 3、添加Mapper接口,其全限定名要与对应的xml文件的namespace相同。 其中的方法签名有如下...

    JAVA Spring框架实现登陆查询 完整搭建框架方法的word文档 包含mysql文件

    找到如下图所示的bean , name="basePackage"的属性的value值就是你建的mybatis接口包名 4 修改web.xml 1 Web.xml在项目的src/main/webapp/web-inf/下面 如图 将老师给的web.xml文件覆盖进去, 下面几步我都...

    SpringBoot笔记-下篇.pdf

    整理自尚硅谷视频教程springboot高级篇,并增加部分springboot2.x的内容 一、Spring Boot与缓存 一、JSR107 Java Caching定义了5个核心接口,分别是...1)、@MapperScan指定需要扫描的mapper接口所在的包

    乐优商城.xmind

    ly-item-interface:主要是对外暴露的API接口及相关实体类 ly-item-service:所有业务逻辑及内部使用接口 创建父工程ly-item ly-item-interface ly-item-service 依赖 启动器 application.yml 添加商品...

    springmvcmybatis

    -- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 添加 mybatis-config配置上去。--> ...

    anonym-blog:博客系统

    anonym-blog博客系统采用技术: SpringBoot多模块化...@MapperScan("cn.name168.anonym.blog.service.mapper") //启动类中配置扫描 2、application配置加入service中的配置 spring: profiles: active: service,prod

Global site tag (gtag.js) - Google Analytics