博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring IOC&DI
阅读量:3958 次
发布时间:2019-05-24

本文共 1162 字,大约阅读时间需要 3 分钟。

定义

IOC:就是由 Spring IOC 容器来负责对象的生命周期和对象之间的关系

依赖注入的三种注入方式

构造器注入:被注入的对象通过在其构造方法中声明依赖对象的参数列表,让外部知道它需要哪些依赖对象

Setter 方法注入:对象只需要为其所依赖的对象提供相对应的 setter 方法,通过该方法将依赖对象设置到被注入对象中

接口方式注入 :它需要被依赖的对象实现不必要的接口,带有侵入性,一般不推荐

自动装配(autowire)三种方式

<bean id=”” class=”” autowire=””/>   autowire=byName/byType/constructor

byType  从IOC容器中找到与bean中的属性类型相同的bean对象注入。注意:IOC容器中,同一类型不可定义两次

byName  从IOC容器中找到与bean中的属性名称相同的bean对象注入。

constructor  把与Bean的构造器入参具有相同类型的Bean自动装配到构造器中。本质,通过Bean类型注入

Bean的对象三种创建方式

默认方式 使用无参构造方法创建对象

使用静态工厂方式创建对象

使用实例工厂方式创建对象

Bean的生命周期

Bean在IOC容器中,Bean会被给出初始化方法和销毁方法,两个方法都是IOC容器负责调用

定义bean的初始化方法  init-method=

定义bean的销毁方法  destroy-method="",此方法需要关闭IOC容器的关闭

//当加载IOC容器,获取上下文对象时,bean会创建

ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");

//当IOC容器关闭或销毁上下文时,bean被销毁
context.close();

Bean的作用域

默认,  IOC 容器里声明的 Bean 创建唯一一个实例, 容器内共享实例

Bean 的作用域类型:

类型

说明

singleton

容器中仅一个 Bean 实例, Bean 以单例的形式存在

prototype 

从容器中获取 Bean 时,都会返回一个新的实例,原型

request

每次 http 请求都创建新的 Bean , 仅用于 WebApplicationContext 

session

同http Session共享一个Bean,不同http Session使用不同Bean

globalSession

同一个全局 Session 共享一个 bean,

提示

hashCode是根据对象的地址获取哈希码,实际上是返回一个int整数

哈希码作用确定该对象在哈希表中的索引位置

转载地址:http://lpazi.baihongyu.com/

你可能感兴趣的文章