标签:bean

spring源码解析——IOC之bean创建

spring源码解析——IOC之bean创建

正文 在 Spring 中存在着不同的 scope,默认是 singleton ,还有 prototype、request 等等其他的 scope,他们的初始化步骤是怎样的呢?这个答案在这篇博客中给出。 singleton Spring 的 scope 默认为 singleton,第一部分分析了从缓

张二河 张二河 2023-10-08
0 0 0
(一)实现一个简易版IoC容器【手撸Spring

(一)实现一个简易版IoC容器【手撸Spring

一、前言 相信大家在看本篇文章的时候,对IoC应该有一个比较清晰的理解,我在这里再重新描述下:它的作用就是实现一个容器将一个个的Bean(这里的Bean可以是一个Java的业务对象,也可以是一个配置对象)统一管理起来。在Java中,我们创建一个对象最简单的方法是使用new关键字。Spring框架的I

向阳逐梦 向阳逐梦 2023-10-08
0 0 0
彻底搞懂Spring依赖注入(一)Bean实例创建过程

彻底搞懂Spring依赖注入(一)Bean实例创建过程

那什么是依赖注入呢?所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。再完成IOC容器初始化之后,也就是所谓的Bean加载完成后,我们需要对这些Bean进行调用和获取,这个过程就叫依赖注入。那什么时候会触发依赖注入呢?通过getBean()方法获取Bean对象。 给Bea

竹子爱熊猫 竹子爱熊猫 2023-10-07
0 0 0
Spring为什么不支持static字段的注入?

Spring为什么不支持static字段的注入?

我们都知道Spring在创建一个bean的时候,还要去填充bean的属性 大致流程如下: 反射创建bean // createBeanInstance 填充bean // populateBean 初始化bean // initializeBean(包括前后置增强) 注册bean的销毁方法 // r

三掌柜 三掌柜 2023-09-30
0 0 0
彻底搞懂Spring的Bean加载

彻底搞懂Spring的Bean加载

一、Bean 加载原理加载过程: 通过 ResourceLoader和其子类DefaultResourceLoader完成资源文件位置定位,实现从类路径,文件系统,url等方式定位功能,完成定位后得到Resource对象,再交给BeanDefinitionReader,它再委托给BeanDefini

穿过生命散发芬芳 穿过生命散发芬芳 2023-09-28
0 0 0
Spring扩展点之ImportBeanDefinitionRegistrar

Spring扩展点之ImportBeanDefinitionRegistrar

一、是什么?查看接口注释:根据给定的注释元数据,根据需要注册bean定义......spring会遍历所有的beanDefinition,逐个创建对应的bean。public interface ImportBeanDefinitionRegistrar { /** * Register be

大猫 大猫 2023-09-28
0 0 0
spring源码解析——IOC开启 bean 的加载

spring源码解析——IOC开启 bean 的加载

概述 前面我们已经分析了spring对于xml配置文件的解析,将分析的信息组装成 BeanDefinition,并将其保存注册到相应的 BeanDefinitionRegistry 中。至此,Spring IOC 的初始化工作完成。接下来我们将对bean的加载进行探索。 BeanFactory 当我

向阳逐梦 向阳逐梦 2023-09-26
0 0 0
Spring源码分析(十)Bean实例化(三)

Spring源码分析(十)Bean实例化(三)

官网:Home 参考书籍:Spring源码深度解析-郝佳编著-微信读书 AbstractAutowireCapableBeanFactory 上一节我们详细的解释了Bean的实例化的后置处理,我们接着往下看doCreateBean的方法,依赖的处理 // 是否需要提前曝光,用来解决循环依赖时使用

三掌柜 三掌柜 2023-09-14
0 0 0
Spring中Bean创建过程之源码分析

Spring中Bean创建过程之源码分析

一、概述 在Spring进行完IoC容器的初始化之后,IoC容器中就拥有了管理Bean的所有信息,在调用BeanFactory的getBean()方法时,或有其他Bean实例依赖时,就会创建出实例来,本文主要分析Bean的生命周期,其生命周期包括:实例化–>属性赋值–>初始化–>销

醒在深海的猫 醒在深海的猫 2023-09-12
0 0 0
啥?Spring竟然可以创建“重复”的Bean?

啥?Spring竟然可以创建“重复”的Bean?

一、项目中存在了名称重复的bean 众所周知,在Spring中时不能够创建两个名称相同的bean的,否则会在启动时报错: 但是却在我们的spring项目中发现了两个相同名称的bean,并且项目也可以正常启动,对应的bean也可以正常使用。 因为项目原因中会用到多个redis集群,所以有配置了多个r

捡田螺的小男孩 捡田螺的小男孩 2023-09-12
0 0 0
Spring Bean 的作用域(Bean Scope)

Spring Bean 的作用域(Bean Scope)

前言 大家好,我是 god23bin,今天我们来聊一聊 Spring 框架中的 Bean 作用域(Scope)。 什么是 Bean 的作用域? 我们在以 XML 作为配置元数据的情况下,进行 Bean 的定义,是这样的: 我们写了一个 Bean 定义(Bean Definition),就是

醒在深海的猫 醒在深海的猫 2023-09-12
0 0 0
Spring中Bean的作用域Scope你知道多少?如何自定义作用域?

Spring中Bean的作用域Scope你知道多少?如何自定义作用域?

1 Scope作用通过@Scope注解可以指定Bean的作用域,默认情况都是单例的(ConfigurableBeanFactory.SCOPE_SINGLETON=singleton)在创建bean实例时就是根据当前定义BeanDefinition中的Scope来做不同的创建,源码如下:protec

竹子爱熊猫 竹子爱熊猫 2023-09-06
0 0 0
Spring源码分析(三)容器的基本实现

Spring源码分析(三)容器的基本实现

本图:川西旅游中拍摄的(业余摄影) 官网:Home 参考书籍:Spring源码深度解析-郝佳编著-微信读书 上一篇文章我们介绍了Spring中的资源加载利器Resource接口,以及下面一些基础的实现类,下面我们按照我们编写的测试案例来分析一下一个自定义Bean是如何加载到容器之中的 总体过程

竹子爱熊猫 竹子爱熊猫 2023-09-02
0 0 0
如何在Java中使用JsonConfig将bean转换为JSON对象并排除某些属性?

如何在Java中使用JsonConfig将bean转换为JSON对象并排除某些属性?

JsonConfig 类是一个帮助配置序列化过程的实用类。我们可以使用JsonConfig 类的setExcludes()方法将一个bean转换为一个JSON对象,并排除其中的一些属性,并将这个JSON配置实例传递给JSONObject的静态方法fromObject()的参数。语法public vo

LOVEHL^ˇ^ LOVEHL^ˇ^ 2023-09-01
0 0 0
当注入的 Bean 存在冲突时,到底有多少种解决方案?松哥总结了五种!

当注入的 Bean 存在冲突时,到底有多少种解决方案?松哥总结了五种!

当我们从 Spring 容器中“拉”取一个 Bean 回来的时候,可以按照名字去拉取,也可以按照类型去拉取,按照 BeanName 拉取的话,一般来说只要 BeanName 书写没有问题,都是没问题的。但是如果是按照类型去拉取,则可能会因为 Bean 存在多个实例从而导致失败。在前面的文章中,松哥和

泡泡 泡泡 2023-08-24
0 0 0
Spring高手之路12——BeanDefinitionRegistry与BeanDefinition合并解析

Spring高手之路12——BeanDefinitionRegistry与BeanDefinition合并解析

1. 什么是BeanDefinitionRegistry?   BeanDefinitionRegistry 是一个非常重要的接口,存在于 Spring 的 org.springframework.beans.factory.support 包中,它是 Spring 中注册和管理 BeanDefin

Escape Escape 2023-08-18
0 0 0
Spring 扫盲系列(一) Java Bean 与 Spring Bean 的区别

Spring 扫盲系列(一) Java Bean 与 Spring Bean 的区别

一、什么是 Java Bean? Java Bean 就是一个普通的 Java 对象(Plain Old Java Object,POJO),它是指那些纯粹的 Java 类,它们没有依赖于任何特定的框架或库。这些类通常只包含数据字段(属性)和简单的访问方法,用于封装数据和实现业务逻辑。 普通的 Ja

大白菜程序猿 大白菜程序猿 2023-08-16
0 0 0
Spring跨作用域的依赖注入方案:方法注入

Spring跨作用域的依赖注入方案:方法注入

参考:Method Injection :: Spring Framework Spring默认支持两种bean的作用域,singleton和prototype,使用@Scope可以指定bean的作用域,默认值为singleton,比如在一个Springboot构建的web项目中,controlle

穿过生命散发芬芳 穿过生命散发芬芳 2023-08-16
0 0 0
Spring BeanDefinition 也分父子关系?

Spring BeanDefinition 也分父子关系?

在 Spring 框架中,BeanDefinition 是一个核心概念,用于定义和配置 bean 的元数据,虽然在实际应用中,我们一般并不会或者很少直接定义 BeanDefinition,但是,我们在 XML 文件中所作的配置,以及利用 Java 代码做的各种 Spring 配置,都会被解析为 Be

三掌柜 三掌柜 2023-08-16
0 0 0
源码学习之Spring容器创建原理 | 京东物流技术团队

源码学习之Spring容器创建原理 | 京东物流技术团队

1 前言 众所周知,Spring可以帮我们管理我们需要的bean。在我们需要用到这些bean的时候,可以很方便的获取到它,然后进行一系列的操作。比如,我们定义一个bean MyTestBean。 public class MyTestBean { private String testStr = "

宇宙之一粟 宇宙之一粟 2023-08-14
0 0 0
1 2 3 4 5