【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)
上一篇 2022年5月18日 上午7:40
下一篇 2022年5月18日 上午8:00


相关推荐

  • windowServer_windowsserver是什么

    windowServer_windowsserver是什么本文转载自https://msdn.microsoft.com/zh-cn/library/ff384253.aspx,主要内容是对msdn中对AppFabric介绍内容的整合以及一些自己的理解。简介AppFrabic托管功能解决的问题特性与功能体系结构IIS和WASASPNETWCF和WF运行时数据库暂留持久化托管承载监控监视管理APIIISManage托管功能应用

    2022年10月17日
    4
  • SpringBoot是什么?干嘛用的?(新手入门篇)

    SpringBoot是什么?干嘛用的?(新手入门篇)SpringBoot是干哈的介绍:springboot是由Pivotal团队提供的全新框架。spring的出现是为了解决企业级开发应用的复杂性,spring的通过注册bean的方式来管理类,但是随着业务的增加,使用xml配置bean的方式也显得相当繁琐,所以springboot就是为了解决spring配置繁琐的问题而诞生的,并且近几年来非常流行开启我的第一个HelloSpringBoot!开启方式根据https://start.spring.io网址创建一个springboot项目

    2025年7月21日
    6
  • ssl通关的概念(一个)

    ssl通关的概念(一个)

    2022年1月6日
    48
  • 二进制乘法除法运算_二进制的补码怎么算

    二进制乘法除法运算_二进制的补码怎么算二进制补码乘法除法1)二进制乘法(1)BinaryMultiplication)Binarynumberscanbemultipliedusingtwomethods,二进制数可以使用两种方法相乘,Papermethod:Papermethodissimilartomultiplicationofdecimalnumbersonpaper….

    2022年10月7日
    4
  • 使用网站地图六大好处

    使用网站地图六大好处

    2021年9月23日
    62
  • Python爬虫从入门到精通——爬虫基础:HTTP基本原理

    Python爬虫从入门到精通——爬虫基础:HTTP基本原理分类目录 Python 爬虫从入门到精通 总目录在本文中 我们会详细了解 HTTP 的基本原理 了解在浏览器中敲入 URL 到获取网页内容之间发生了什么 了解了这些内容 有助于我们进一步了解爬虫的基本原理 URI 和 URLURI 的全称为 UniformResou 即统一资源标志符 URL 的全称为 UniversalRes 即统一资源定位符 举例来

    2026年3月26日
    2

发表回复

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

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