关键注解层次关系:
@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
相关推荐
主要涉及写XML文件和读取...生成的GeneratorConfigXML修改jdbc驱动位置后可直接用使用eclipse的mybatis插件生成mapper接口和映射文件以及实体类。编码方式的不同,注意配置文件的中文注释可能报错,使用时删除即可。
4.扫描Mapper接口和配置MyBatis: 在Spring Boot入口类上添加@MapperScan注解,指定Mapper接口所在的包。 配置MyBatis相关属性,例如在 application.properties(或 application.yml)中添加 通过以上步骤,可以整合...
文章目录添加配置配置pom.xml解决生成后mapper.xml丢失问题配置application.properties配置mybatis-config.xml配置generatorConfig.xml添加连接池配置类MBG逆向工程生成代码解决逆向生成xxxKey和xxxwithBlobs的问题...
这个包,并建立接口类 IUserOperation , 内容如下: 程序代码 程序代码 package com.yihaomen.mybatis.inter; import com.yihaomen.mybatis.model.User; public interface IUserOperation { public User ...
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 ...
MapperScannerConfigurer将扫描basePackage所指定的包下的所有接口类(包括子类), 如果它们在SQL映射文件中定义过,则将它们动态定义为一个Spring Bean, 这样,我们在Service中就可以直接注入映射接口的bean ...
1、在Spring配置文件中加入自动扫描Mapper接口的Bean 2、修改xml文件中的namespace为该XML文件的Mapper接口的全限定名,如 3、添加Mapper接口,其全限定名要与对应的xml文件的namespace相同。 其中的方法签名有如下...
找到如下图所示的bean , name="basePackage"的属性的value值就是你建的mybatis接口包名 4 修改web.xml 1 Web.xml在项目的src/main/webapp/web-inf/下面 如图 将老师给的web.xml文件覆盖进去, 下面几步我都...
整理自尚硅谷视频教程springboot高级篇,并增加部分springboot2.x的内容 一、Spring Boot与缓存 一、JSR107 Java Caching定义了5个核心接口,分别是...1)、@MapperScan指定需要扫描的mapper接口所在的包
ly-item-interface:主要是对外暴露的API接口及相关实体类 ly-item-service:所有业务逻辑及内部使用接口 创建父工程ly-item ly-item-interface ly-item-service 依赖 启动器 application.yml 添加商品...
-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 添加 mybatis-config配置上去。--> ...
anonym-blog博客系统采用技术: SpringBoot多模块化...@MapperScan("cn.name168.anonym.blog.service.mapper") //启动类中配置扫描 2、application配置加入service中的配置 spring: profiles: active: service,prod