【SSM框架】一、Spring

本文深入探讨了Spring框架中的IOC(控制反转)和DI(依赖注入)概念,解释了它们如何降低代码耦合度。通过案例分析展示了如何配置Bean、设置作用域、生命周期管理以及依赖注入的不同方式,包括setter注入、构造器注入和自动装配。此外,还介绍了集合注入、注解开发以及Spring与MyBatis的整合,强调了注解在简化配置和提升开发效率上的作用。
摘要由CSDN通过智能技术生成

【SPRING】

一、目前存在的问题

在这里插入图片描述

  1. 如果直接使用new的形式,如果接口换了,那么这个service要不要重新编译,重新测试,重新部署,重新发布。就会导致我们的代码耦合度偏高。
  2. 解决方案为,在使用对象时,程序不要主动使用new产生对象,转换为由外部提供对象(IOC控制反转)–》主要目的就是解耦。
  3. spring对ioc思想进行了实现,提供了一个容器,称为ioc容器。它把它管理的对象统称为Bean。
  4. 依赖注入:把service需要的dao对象进行注入,最终的效果是所有的的依赖关系已经帮你绑定好了。
    在这里插入图片描述

二、IOC入门案例

  1. 使用spring导入坐标?(pom文件)
    在这里插入图片描述
  2. 如何将被管理的对象告知IOC容器?(使用配置的方法)
    在这里插入图片描述
  3. 被管理的对象交给ioc容器,如何获取ioc容器?(接口)ioc容器获得到后,如何从容器中获取bean?(接口方法)
    在这里插入图片描述

三、DI入门案例

  1. 首先要提供对应的set方法
  2. 写配置文件,告知bean对象的关系
    在这里插入图片描述
    在这里插入图片描述

四、Bean的配置

  1. 可以配置别名
    在这里插入图片描述
  2. bean的作用范围(默认是单例的)
    在这里插入图片描述
  3. bean的实例化方法:
    spring创建bean的时候调用的是无参的构造方法,如果无参的构造方法不存在会抛一个异常叫beanCreationException。
  4. FactoryBean实例化Bean(重点):
    在这里插入图片描述
    在这里插入图片描述
  5. bean的生命周期
    在这里插入图片描述
    这个是初始化方法和结束方法的配置。
    在这里插入图片描述
    这两个接口各对应一个方法,分别对应初始化和销毁方法。和上面的一样也可以控制。
    在这里插入图片描述

五、依赖注入的方式

向一个类种传递数据有几种方式?

  1. 普通方法(set方法)
  2. 构造方法
    如果需要注入的不是bean而是数字或字符串呢?
  3. 引用类型
  4. 简单类型
    排列组合一下有四种情况
    ① setter注入引用类型,需要先提供set方法
    在这里插入图片描述
    ②setter注入简单类型,需要先提供set方法
    在这里插入图片描述
    ③构造器注入,引用类型
    在这里插入图片描述
    在这里插入图片描述
    ④构造器注入,基本类型
    在这里插入图片描述
    ⑤但是现在配置文件和代码是紧耦合的,要保证注入的属性是一致的。可以换成按照类型注入。
    在这里插入图片描述
    ⑥还可以根据第几个参数进行注入
    在这里插入图片描述
    ⑦怎么选是构造器注入还是Setter方法注入?
    如果是强制依赖的属性,使用构造器注入。
    在这里插入图片描述

六、依赖自动装配

  1. 按类型,如果有两个相同类型的bean会报错。(主要使用)
    在这里插入图片描述
  2. 按名称匹配,名称不一样会报错。
    在这里插入图片描述
  3. 自动装配不能对简单类型进行操作。。。。
    在这里插入图片描述

七、集合注入

在这里插入图片描述

八、容器及总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

九、注解开发

  1. 注解定义bean:
    在这里插入图片描述
  2. 纯注解开发:使用配置类替换配置文件
    在这里插入图片描述
    然后换一个applicationContext
    在这里插入图片描述在这里插入图片描述
  3. bean的作用范围和生命周期
    ①变成非单例对象:
    在这里插入图片描述
    ②加上生命周期方法
    在这里插入图片描述
  4. 注解开发依赖注入
    ①@Autowired注解可以自动帮我们加上set方法,不需要写set方法了(暴力反射)【按照类型装配】
    在这里插入图片描述
    ②如果同一个类型的bean有多个,那么就需要按照名称装配
    在这里插入图片描述
    在这里插入图片描述
    如果不使用@Qualifier的话,就会按照对象的名称找。

③简单类型怎么注入
在这里插入图片描述
④如果是要用到外部的属性文件呢
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
⑤第三方bean管理
在这里插入图片描述
在这里插入图片描述
配置类也可以导入很多小的配置类
在这里插入图片描述
⑥为第三方bean注入资源
简单类型
在这里插入图片描述
引用类型:直接加了个形参就自动装配了。(根据类型注入)
在这里插入图片描述
在这里插入图片描述

十、Spring整合MyBatis

  1. 思路分析:只有接口没有实现类,说明是用自动代理做的。Mybatis管理的就是SqlSessionFactory对象。
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. 整合流程
    ①导入spring操作jdbc的坐标和Mybatis与spring整合的坐标
    在这里插入图片描述
    ②配置数据源
    在这里插入图片描述
    ③注解开发配置类
    在这里插入图片描述
    ④MybatisConfig
    在这里插入图片描述
    ⑤做完了!
    在这里插入图片描述
  2. 总结
    在这里插入图片描述
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值