spring 容器(控制反转及依赖注入)

た 入场券 2022-05-17 06:24 300阅读 0赞

spring:是一个容器,项目开始就一直在运行;

spring—加载进内存里面 容器中有监听器 引入容器,而struts注重运行时;

核心类中监听器…监听启动后可以从context(上下文即spring所有的配置)中获取内容,将核心配置文件(applicatinContext.xml)交给spring容器)

70

1.实例化 spring IOC容器(让他通过构造器实例化类) 的方法:

70 1

2.实例化bean 的方法:

1.构造器实现: 在applicationContext.xml 中构造一个 bean(class) ,spring 容器就可以读到该bean.可以利用该class所指向的类的构造函数来实例化(即实例化该bean,生成实例)

70 2

2.静态工厂实例化:实例化的是该方法返回的内容,而不是该类的实例;

(容易产生单例)配置bean(相当于完成了new 实例和用实例调用方法)—通过方法返回实例 逆向思维

70 3

3.实例化工厂(非静态的工厂实例化)不断输出各种实例;

3.IOC:控制反转

<1>.将new 实例的过程交给spring ,即将对实例的控制权交给spring(主要让他管理这些bean—定义一次实例 ,随时都能用) 我不用再管new的过程 只管用容器已经创建的实例就好;

<2>. 怎么用new 的实例:即bean的操作(getBean() 机制—控制反转);

spring 通过上下文拿到你的bean (一个一个的对象,即源码中的类)对象—-调用属性;

70 4

4.DI:依赖注入

本类引入其他类 (但是不用new 将已有(bean /属性)的注入给你 )如:将Student 依赖进 User (用User 创建一个student对象就可以了,student相当于User 类的一个成员属性)

依赖注入的方法:

1.构造器注入

构造函数的参数对象类型(User 类中定义一个student对象,User 类相当于多了一个属性 ,加 get()/set() 方法)

70 5

2.setter注入标签 value注入属性值

<1>. ref--引入其他bean 的 name属性值,,,value:对直接变量和基本类型等可以直接赋值,不能对对象赋值;

70 6

<2>. idef(该bean 是否存在)、 local(该bean 是否与引入它的bean存在同一配置文件中).xml解析器对引入的bean 进行安全验证,提前发现错误;ref 只是引入,在请求时才会找该bean 的信息

70 7

70 8

<3>.父容器:

70 9

4.内部bean:(idef 可引入)

70 10

5.bean 的作用域:

创建一个bean 的实质是用该bean 定义的类来创建真实实例的“配方”(定义一个你要创建什么东西)。与class 类似,根据一张“处方“就可以创建多个实例—反射原理; 这样,不仅可以控制 注入带对象的依赖和配置值,也可以控制选择对象的作用域。不必在java class级别(public/private….)定义作用域

70 11

ps:spring框架很强大,我们需要了解其底层原理 才能更好的使用它!

发表评论

表情:
评论列表 (有 0 条评论,300人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring依赖注入控制

    平常的java开发中,如果某个类中需要依赖其它类的方法,通常是通过new一个依赖类,然后再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依