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 系列 | Spring IOC依赖的来源 -> 正文阅读

[Java知识库]Spring 系列 | Spring IOC依赖的来源

前面两篇文章讲Spring IOC 依赖注入和依赖查找的一些细节内容,那么无论是依赖注入 还是依赖查找 都有一个共同要涉及的问题就是依赖的来源。
本文我们来聊下两种方式依赖的来源以及有什么不同

以下是本篇文章讨论的内容:
== 此处CSDN 今天上传图有点问题,明天再上传==

Spring IOC依赖的来源

一 依赖查找的来源

Spring BeanDefinition

?<bean id= “user” class=“org…User”
?@Bean public User user(){}
?BeanDefinitionBuilder

单例对象

?API 实现
?内建BeanDefinition
?Environment
?systemProperties
?…

二 依赖注入的来源

非Spring 容器管理对象

?可以通过API 注入
?不能用于依赖查找

Spring BeanDefinition

A:<bean id= “user” class=“org…User”
B: @Bean public User user(){}
C:BeanDefinitionBuilder

单例对象

A:API 实现
B : 内建BeanDefinition
? Environment
? systemProperties
? …

外部化配置

Spring 容器管理和游离对象

非 Spring 容器管理对象作为依赖来源

?A :要素
?注册:ConfigurableListableBeanFactory# registerResolvableDependency
?B : 限制
?无生命周期管理
?无法实现延迟初始化 Bean
?无法通过依赖查找 🪐

Spring Bean Definition 作为依赖来源

A:要素

  • 元数据:BeanDefinition
  • 注册:BeanDefinitionRegistory # registerBeanDefinition
  • 类型:延迟和非延迟

单例对象 作为依赖来源

A : 要素

  • 来源:外部普通Java 对象(不一定是POJO)
  • 注册:SingletonBeanRegistry # registerSingleton
    B : 限制
  • 无生命周期管理
  • 无法实现延迟初始化Bean

外部化配置作为依赖来源

A : 要素

  • 类型 : 非常规Spring 对象依赖

B: 限制

  • 无生命周期管理
  • 无法实现延迟初始化 Bean
  • 无法通过依赖查找 🪐

C : 代码

  • AutowiredAnnotationBeanPostProcessor # resolveDependency getSuggestedValue
  • DefaultListableBeanFactory # doResolveDependency getSuggestedValue

对比

?单例对象作为依赖来源
?外部化配置作为依赖来源

== 此处CSDN 今天上传图有点问题,明天再上传==

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

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