【Spring】总结Spring整合Mybatis的底层原理实现步骤[通俗易懂]

【Spring】总结Spring整合Mybatis的底层原理实现步骤[通俗易懂]SpringMyBatisDao:数据访问层,提供让Service层调用的接口,更大的时候,Dao层可以是一个项目。sqlSession.getMapper();使用的是JDK的动态代理使用时自定注入的条件:要被Spring管理。被Spring管理的对象叫做Bean对象和Bean的区别:@Component注解表示将生成一个BeanBean就是一个Java对象,是Spring…

大家好,又见面了,我是你们的朋友全栈君。

(鲁班学院公开课笔记)

Dao:数据访问层,提供让Service层调用的接口,更大的时候,Dao层可以是一个项目。

在这里插入图片描述
sqlSession.getMapper();使用的是JDK的动态代理

在这里插入图片描述
使用时
在这里插入图片描述
自定注入的条件:要被Spring管理。被Spring管理的对象叫做Bean

@Component注解:表示将生成一个Bean
对象和Bean的区别
1、Bean就是一个Java对象,是Spring帮我们New出来的对象。
2、从Spring容器中拿到的对象,会给对象里面的包含@AutoWired注解的属性进行自动注入赋值。而手动new出来的对象不会自动注入赋值。
在这里插入图片描述

Spring容器中的Bean是怎么产生的?
在这里插入图片描述
BeanFactory:是一个Bean工厂

手动将Bean添加进Spring中:

bd=new bd();
bd.setbeanClass();
spring.add(bd);

—->BeanDefinition—->Bean

MyBatis是如何注入Spring的?
MyBatis代理对象的类型是?接口,例如UserMapper。我们可以提供一个类,让Spring自动去实例化
但是接口不能实例化,怎么办?如果可以把一个Java对象手动放进Spring容器中,就好了。

将Java对象手动放进Spring容器中三种方式:

1. beanFactory.registerSingleton("userXX",new User())
2. @Bean注解
3. 实现FactoryBean接口:FactoryBean是一个特殊的Bean
FactoryBean和BeanFactory的理解
BeanFactory是Spring里的一个大工厂
FactoryBean是一个小工厂,可以自定义生成的对象

在这里插入图片描述
在这里插入图片描述
MyBatis是使用FactoryBean整合进Spring的。

打印对象的时候,调用的是toString方法,会调用到invoke()
在这里插入图片描述
在这里插入图片描述

改进:将类改成活的 Class,使用构造器传入希望生成的Class
在这里插入图片描述
如果不使用@Component注解呢?
根据不同的Mapper生成不同的bd,从而生成不同的bean
在这里插入图片描述
手动实现
在这里插入图片描述

@import注解
可以用于导入一个本来不是Bean的类,将它生成一个Bean

在这里插入图片描述
@Bean明确地指示了一种方法,什么方法呢——产生一个bean的方法,并且交给Spring容器管理

测试示例:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145081.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 更换好用conda源「建议收藏」

    更换好用conda源「建议收藏」window是更换conda源windows在用户目录中的.condarc文件中替换以下源(如果没有这文件则需要自己创建)channels:-https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/-https://mirrors.tuna.tsinghua.edu.cn/anaconda/

    2022年10月1日
    3
  • Linux京东签到教程,京东POP店铺签到有礼操作指南「建议收藏」

    Linux京东签到教程,京东POP店铺签到有礼操作指南「建议收藏」目录1产品概述2POP签到有礼设置2.1创建签到2.1.1第一步:签到活动设置2.1.2第二步:签到规则设置—-店铺抽奖2.1.3第二步:签到规则设置—-连续签到2.1.4第三步:选择引流商品2.1.5第四步:完成创建2.2签到有礼-当前活动2.3签到有礼-全部活动2.4用户前台入口3京麦签到工具介绍1产品概述1.产品价值:提高C端用户到店频次,提高店铺粘性,借机达到商品转化的目的。2…

    2026年1月16日
    6
  • npm卸载模块(nodejs原生模块npm)

    npmuninstall模块 删除本地模块时你应该思考的问题:是否将在package.json上的相应依赖信息也消除?npmuninstall模块:删除模块,但不删除模块留在package.json中的对应信息npmuninstall模块–save 删除模块,同时删除模块留在package.json中dependencies下的对应信息npm

    2022年4月10日
    97
  • vim 经典插件大全 转自:http://blog.csdn.net/tge7618291「建议收藏」

    vim 经典插件大全 转自:http://blog.csdn.net/tge7618291「建议收藏」1#============================================================================= 21.查看key相关信息说明的命令 :helpkeycodes 3#========================================================================

    2022年5月30日
    43
  • 网络python培训班「建议收藏」

    网络python培训班「建议收藏」为进一步推动高等院校人工智能教学工作的开展,加强国内各高等院校同行间的交流,培养国内的师资力量,将人工智能最新实训内容带入课堂,特举办“人工智能系列课程理论与实践”高级培训班。该培训定于2021年7月20日开始,共包含七大专题,每个专题5天左右,共计30天,通过线上直播的方式进行集训。七大专题分别为Python机器学习,图像识别与深度学习,深度学习与NLP,知识图谱、图神经网络和强化学习,深度学习PyTorch理论与实战。本次培训由权威专家主讲,提供实验环境及实验数据,并提供配套资料,通过剖析工程案例展

    2022年7月19日
    20
  • java实体entity转map对象[通俗易懂]

    java实体entity转map对象[通俗易懂]实体转对象方法一,一句搞定,直接返回map对象:importorg.springframework.cglib.beans.BeanMap;BeanMap.create(entityObj);方法二:利用反射——详见原文

    2022年5月5日
    224

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号