IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Spring IoC 二】 -> 正文阅读

[Java知识库]【Spring IoC 二】

一、Spring IoC容器相关概念

客户端对象

如果对象A需要引用对象B,那么A就是B的客户端对象。

Spring IoC容器

是一个提供IoC支持的轻量级容器,作为轻量级容器还支持IoC功能以外的支持。
在这里插入图片描述

IoC Service Provider

是一个抽象出来的概念,它可以指代任何将IoC场景中的业务对象绑定到一起的实现方式。它可以是一段代码,也可以是一组相关的类,甚至可以是比较通用的IoC框架或者IoC容器实现。

IoC模式

IoC是一种模式,即使不使用IoC容器开发,只用简单的代码也可以实现IoC模式。

二、Spring IoC容器类型分类

2.1、BeanFactory

2.1.1、概念

基础类型IoC容器,提供完整的IoC服务支持。如果没有特殊指定,默认采用延迟初始化策略( lazy-load)。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该受管对象进行初始化以及依赖注入操作。
既然Spring框架提倡使用POJO,那么把每个业务对象看作一个JavaBean对象

2.1.2、BeanFactory的对象注册与依赖绑定方式

直接编码方式

BeanFactory接口:管理Bean的接口,只定义如何访问容器内管理的Bean的方法。(图书馆)
BeanDefinitionRegistry接口:该接口作用是Bean的注册和管理。(图书馆书架)
DefaultListableBeanFactory:BeanFactory接口和BeanDefinitionRegistry接口的实现类。
BeanDefinition接口:负责保存对象的所有必要信息,对象的属性,构造方法等。当客户端(注册对象)BeanFactory(IoC容器)请求相应的对象,BeanFactory会通过这些信息为客户端返回一个完备的对象实例。

XML文件方式

在这里插入图片描述

注解

component	英[k?m?p??n?nt][k?m?po?n?nt]
n.	组成部分; 成分; 部件;

wired
英 [?wa??d][?wa??rd]  
adj.
(与计算机系统)联网的, 连线的;(为使坚挺或坚固)内含金属丝的,夹丝的;兴奋的;紧张不安的;迷醉的

autowired
自动装配


@Component  //被注入对象
public class FXNewsProvider {

    //依赖对象,抓取新闻的接口
    @Autowired//告知Spring容器要为当前对象注入哪些依赖对象,指明依赖对象
    private IFXNewsListener newsListener;

    //依赖对象,存储新闻的接口
    @Autowired//告知Spring容器要为当前对象注入哪些依赖对象,指明依赖对象
    private IFXNewsPersister mewsPersister;
}



context:component-scan/会到指定的包( package)下面扫描标注有@Component的类,如果找到,则将它们添加到容器进行管理,并根据它们所标注的@Autowired为这些类注入符合条件的依赖对象。

2.2、ApplicationContext

概念

ApplicationContext所管理的对象,在该类型容器启动之后,默认全部初始化并绑定完成。所以,相对于BeanFactory来说, ApplicationContext要求更多的系统资源,同时,因为在启动时就完成所有初始化,容器启动时间较之BeanFactory也会长一些。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 22:56:59  更:2022-01-29 22:58:44 
 
开发: 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/24 11:06:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码