Spring框架IOC部分的知识

Posted scanner小霸王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring框架IOC部分的知识相关的知识,希望对你有一定的参考价值。

1.Spring 是轻量级的开源的javaEE框架

(轻量:所谓轻量级就是spring框架在系统初始化的时候不用加载所有的服务,为系统节约了资源!
而EJB框架就是重量级的,每次初始化都必须加载所有的服务!)
作用:解决企业应用开发的复杂性
主要两个核心:IOC 和 AOP
1)IOC :控制反转,把创建对象的过程交给spring进行
(以前是直接new)
2)Aop:面向切面,不修改源代码进行功能的增强
(以前扩展需要修改源代码)

2.Sping特点

1)方便解耦,简化开发
2)Aop编程支持
3)方便程序测试
4)方便与其他框架整合
5)方便进行事务操作
6)降低APi开发难度

3.Spring 核心包

在这里插入图片描述

4.创建普通的类

(区别以往的new方式)
1)创建spring配置文件,在配置文件创建对象
(class:代表包的全路径)
在这里插入图片描述2)加载配置文件,获取配置创建的对象
在这里插入图片描述

5.IOC容器

概念:控制反转,把对象的创建和对象之间的调用过程,交给Spring进行管理
目的:降低耦合度
1)IOC底层原理
用到的技术:XML解析、工厂模式、反射
用技术的过程
在这里插入图片描述

2)IOC接口(BeanFactory)
a)IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
b)spring提供IOC完成实现的两种方式(两个接口)
BeanFactory :IOC容器基本实现,是spring内部使用的接口,不提供开发人员使用
(加载配置文件时候不会创建对象,获取对象才会去创建对象)
ApplicationContext:BeanFactory接口的子接口,提高更多更强大的功能,一般由开发人员进行使用
(加载配置文件时候会创建对象)
在这里插入图片描述
主要有两个实现类,分别参数代表 磁盘下的文件路径 以及
src下的路径
3)什么是Bean管理
Bean管理是指两个操作
a)Spring创建对象
b)Spring注入属性
4)IOC操作Bean管理(基于XML)
在这里插入图片描述

5)IOC操作Bean管理(基于注解)
a)DI:依赖注入,就是注入属性,DI是IOC的一种具体实现
ii)第一种方式注入:使用set方法进行注入
在这里插入图片描述

ii)第二种方式注入:使用有参构造方式注入

在这里插入图片描述
ii)P名称空间注入

6)属性注入

a)字面量
ii)null
在这里插入图片描述

ii)属性包含特殊符号
在这里插入图片描述
b)注入属性—外部bean

在这里插入图片描述
在这里插入图片描述
c)注入属性–内部bean 和级联赋值
ii)设置对象属性
在这里插入图片描述
ii)设置对象属性,通过ref属性
在这里插入图片描述
d)注入数组类型的属性
e)注入List集合类型的属性
f)注入Map类型的属性
在这里插入图片描述

在这里插入图片描述
g)注入 set类型的属性
在这里插入图片描述

h)List集合当中存对象类型的元素
在这里插入图片描述

7)IOC操作bean管理(factoryBean)

a)普通bean 定义什么类型就是返回类型
b)工厂bean 定义类型和返回类型可以不一致
ii)第一步 创建类,让这个类作为工厂bean,实现接口factoryBean
ii)第二步 实现接口里面的方法,在实现的方法种定义返回类型bean
例如:定义的是MyBean的类型,返回的是Course类型
在这里插入图片描述
注释:
在spring里面设置创建的bean实例是单例还是多例;
在spring里面,默认是单例;
在这里插入图片描述

8)bean的生命周期

a)通过构造器创建bean实例(无参构造)
b)为bean的属性设置值和对其他bean的引用(调用set的方法)
b2)把bean实例传递bean后置处理器的before方法
c)调用bean的初始化方法(需要进行配置)
例如:定义初始化的方法initMethod
在这里插入图片描述
c2)把bean实例传递bean后置处理器的after方法
d)bean可以使用了(对象获取到了)
e)当容器关闭时候,调用bean的销毁的方法(需要进行配置)
在这里插入图片描述

9)演示添加后置处理器效果

a)创建类,实现BeanPostProcessor接口,创建后置处理器

在这里插入图片描述
b)给该xml所有bean实例加上后置处理器
两个方法对应初始化前执行和初始化后执行
在这里插入图片描述

10)IOC操作Bean管理(xml自动装配)

a)根据属性名称或者属性类型进行装配
在这里插入图片描述
注:相同类型不能定义多个bean,否则会报错,因为有多个bean的时候,无法识别要找哪一个。

11)IOC操作bean管理

a)加入包
b)创建bean(直接写入数据库信息)
在这里插入图片描述
b2)创建bean(引入外部的配置信息)
ii)需要先引入名称空间
ii)引入外部文件路径
ii)el表达式赋值
在这里插入图片描述

12)IOC操作bean管理(基于注解方式)

目的:简化配置
a)针对bean管理提供的注解
在这里插入图片描述
注:上面四个注解功能一样,都可以用来创建bean
b)基于注解方式实现对象创建
ii)引入依赖 spring-aop-*.jar
ii)开启组件扫描
在这里插入图片描述
ii)创建类,在类上面添加创建对象注释
在这里插入图片描述
注(开始组件扫描的注释):
ii)到包里只扫描带 *.Controller注解的类
在这里插入图片描述
ii)除了带 *.Controller之外,到包里扫描注解的类
在这里插入图片描述
c)注解方法实现属性注入
(前三个针对对象类型,最后一个是普通的数据类型)
在这里插入图片描述
注:@Qualifier需要和@Autowired一起使用
d)完全注解开发
ii)创建一个类,代替xml,加上注解@Configurayion
在这里插入图片描述
ii)编写代码,加载注解类,代替之前的加载xml
在这里插入图片描述

以上是关于Spring框架IOC部分的知识的主要内容,如果未能解决你的问题,请参考以下文章

Spring框架知识复习之一

Spring框架参考手册翻译——第三部分 核心技术 6.1 Spring IoC容器和bean的介绍

Spring框架的基本使用(IOC部分)

Spring知识点总结之Spring IOC

Spring框架学习之IOC

Spring部分基础知识点