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部分的知识的主要内容,如果未能解决你的问题,请参考以下文章