| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 第二章IOC控制反转(使用spring容器) -> 正文阅读 |
|
[Java知识库]第二章IOC控制反转(使用spring容器) |
??????? 控制反转(
IoC
,
Inversion of Control
),是一个概念,是一种思想。指将传统上由程序代
码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对
象控制权的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建,属性赋值,
依赖的管理。
??????? IoC
是一个概念,是一种思想,其实现方式多种多样。当前比较流行的实现方式是依赖
注入。应用广泛。
??????? 依赖:
classA
类中含有
classB
的实例,在
classA
中调用
classB
的方法完成功能,即
classA
对
classB
有依赖。
?????? Ioc
的实现:
?
依赖注入:
DI(Dependency Injection)
,程序代码不做定位查询,这些工作由容器自行完成。
?????? 依赖注入
DI
是指程序运行过程中,若需要调用另一个对象协助时,无须在代码中创建
被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。
?????? Spring
的依赖注入对调用者与被调用者几乎没有任何要求,完全支持对象之间依赖关系
的管理。
?????? Spring
框架使用依赖注入(
DI
)实现
IoC
。
?????? Spring
容器是一个超级大工厂,负责创建、管理所有的
Java
对象,这些
Java
对象被称
为
Bean
。
Spring
容器管理着容器中
Bean
之间的依赖关系,
Spring
使用“依赖注入”的方式
来管理
Bean
之间的依赖关系。使用
IoC
实现对象之间的解耦和。
2.1
开发工具准备
开发工具:
idea2017
以上
依赖管理:
maven3
以上
jdk:1.8
以上
需要设置
maven
本机仓库:
? 2.2 Spring 的第一个程序 项目结构展示 ? 2.2.1 创建 maven 项目 ? 2.2.2 引入 maven 依赖 pom.xml
?2.2.3 定义接口与实体类 1.接口
2.实体类
2.2.4创建
Spring
配置文件
?????? 在
src/main/resources/
目录现创建一个
xml
文件,文件名可以随意,但
Spring 建议的名
称为
applicationContext.xml
。
????? spring
配置中需要加入约束文件才能正常使用,约束文件是
xsd
扩展名。
<bean />
:用于定义一个实例对象。一个实例对应一个
bean
元素。
id
:该属性是
Bean
实例的唯一标识,程序通过
id
属性访问
Bean
,
Bean
与
Bean
间的依
赖关系也是通过
id
属性关联的。
class
:指定该
Bean
所属的类,注意这里只能是类,不能是接口。
2.2.5定义测试类
1.test1()结果,没有使用spring容器
?2.test2()结果,使用spring容器。在创建spring容器时,会创建配置文件中所有的对象,创建这些对象时会再次调用无参构造方法。
3.test3()结果,使用spring容器。在创建spring容器时,会创建配置文件中所有的对象,创建这些对象时会再次调用无参构造方法。
?4.使用 spring 创建非自定义类对象 的测试结果 ?2.2.7 容器接口和实现类
?????? ApplicationContext
用于加载
Spring
的配置文件,在程序中充当“容器”的角色。其实现
类有两个。
A、配置文件在类路径下
?????? 若
Spring
配置文件存放在项目的类路径下,则使用
ClassPathXmlApplicationContext
实现
类进行加载。
B、 ApplicationContext 容器中对象的装配时机 ?
??????? ApplicationContext
容器,会在容器对象初始化时,将其中的所有对象一次性全部装配好。
以后代码中若要使用到这些对象,只需从内存中直接获取即可。执行效率较高。但占用内存。
C
、 使用
spring
容器创建的
java
对象
? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 11:29:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |