iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >spring Bean创建方法是什么
  • 847
分享到

spring Bean创建方法是什么

2023-06-26 06:06:33 847人浏览 薄情痞子
摘要

本篇内容主要讲解“spring Bean创建方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spring Bean创建方法是什么”吧!bean创建的流程图写在前面:建

本篇内容主要讲解“spring Bean创建方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spring Bean创建方法是什么”吧!

bean创建的流程图

写在前面:建议大家一定要自己用实例跑一遍,做好记录。如果只是看看会非常抽象。此流程图作为梗概,便于加强记忆和理解,新手或无基础的有个印象即可。等跟随本文走通一遍,在回过头看这个图,或许会有收获

spring Bean创建方法是什么

源码走一遍bean的定义这是我的bean目录结构,只是做一个例子

spring Bean创建方法是什么

获取核心容器对象,bean最后都会放在此容器对象中

    *   ApplicationContext的三个实现类    *   ClassPathXmlApplicationContext  它可以加载类路径下的配置文件,要求必须在类路径下    *   FileSystemXmlApplicationContext  可以加载任意路径下的配置文件,必须有访问权限    *   AnnotationConfigApplicationContext 用于读取注解创建容器的        这里我用ClassPathXmlApplicationContext来做演示       public class MyTest {    public static void main(String[] args) {        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");    }}

快速开始

建议用idea的debug模式来观察Spring的ioc过程

spring Bean创建方法是什么

进入到此类的构造方法中

spring Bean创建方法是什么

查看setConfigLocations,就是将配置文件加载到configLocations里去

spring Bean创建方法是什么

向下执行,查看refresh()

spring Bean创建方法是什么

this.prepareRefresh(): 此方法是准备工作,大家感兴趣可以点进去看一下,可以看到里面是获取时间,获取环境信息的一些设置。

this.obtainFreshBeanFactory(): 这一步是创建beanFactory,并且读取Bean的信息,源码注释中还有写到

// Tell the subclass to refresh the internal bean factory.会告诉子类去刷新内部bean工厂

this.refreshBeanFactory:

 * This implementation perfORMs an actual refresh of this context's underlying * bean factory, shutting down the previous bean factory (if any) and * initializing a fresh bean factory for the next phase of the context's lifecycle.  这个实现类的方法会刷新容器中的beanFactory,关闭之前存在的并且初始化新的beanFactory

spring Bean创建方法是什么

利用this.createBeanFactory() 创建了一个beanFactory,类型为DefaultListableBeanFactory

这个类接着往下走:this.loadBeanDefinitions(beanFactory);

 * Load bean definitions into the given bean factory, typically through * delegating to one or more bean definition readers.  这个方法会将beandefinitionsReader读取到的bean definitions放入bean工厂,我们以上提出的三种 注入方式都会走到这里,将bean信息丢进去

返回上述 refresh()

this.prepareBeanFactory(beanFactory); 设置和忽略一些对象值

this.postProcessBeanFactory(beanFactory); 空方法可自定义扩展

this.invokeBeanFactoryPostProcessors(beanFactory);

 * Instantiate and invoke all reGIStered BeanFactoryPostProcessor beans, * respecting explicit order if given. * <p>Must be called before singleton instantiation.  实例化所有beanFactory组件

registerBeanPostProcessors(beanFactory);

Instantiate and register all BeanPostProcessor beans,  //先注册再调用

initApplicationEventMulticaster(); 观察者模式监听器, 监听组件的相关状态,并决定相关调用方法。

finishBeanFactoryInitialization(beanFactory); 重要!!

 * Finish the initialization of this context's bean factory, * initializing all remaining singleton beans.  完成了容器bean factory的初始化,并且初始化其他的bean单例对象

beanFactory.preInstantiateSingletons(); 实例化方法

此方法最后this.getBean(beanName)

继续

spring Bean创建方法是什么

Return an instance, which may be shared or independent, of the specified bean.注释已经很清楚了,此方法会返回一个实例,就是我们的bean对象

spring Bean创建方法是什么

进入到createBean方法中

spring Bean创建方法是什么

继续进入![image-20200714221630608](/Users/hjj/Library/Application Support/typora-user-images/image-20200714221630608.png)

继续进入

spring Bean创建方法是什么

spring Bean创建方法是什么

Instantiate the given bean using its default constructor.这个方法注释说明了实例化对象是用构造器完成的

继续看他如何构造的

spring Bean创建方法是什么

spring Bean创建方法是什么

spring Bean创建方法是什么

ca 就是Constructor,从这里我们基本可以看出容器内,bean对象的实例化是利用反射的基本原理,获取类构造器,然后newInstance来实现的

以上就是bean对象实例化的基本过程,下面是实例化完成后的初始化过程

回到这里,实例化完成后

spring Bean创建方法是什么

spring Bean创建方法是什么

注释说明了在populateBean完成bean的初始化

继续

spring Bean创建方法是什么

会看到在此方法里会调用前置和后置处理器来初始化Bean

到此,相信大家对“spring Bean创建方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: spring Bean创建方法是什么

本文链接: https://www.lsjlt.com/news/307289.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • spring Bean创建方法是什么
    本篇内容主要讲解“spring Bean创建方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“spring Bean创建方法是什么”吧!bean创建的流程图写在前面:建...
    99+
    2023-06-26
  • spring调用bean的方法是什么
    Spring调用Bean的方法通常有以下几种方式: 通过XML配置文件进行配置,在配置文件中声明Bean并指定其相应的属性和方法。...
    99+
    2024-04-09
    spring
  • Spring创建bean的方式有哪些
    这篇文章主要讲解了“Spring创建bean的方式有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring创建bean的方式有哪些”吧!环境Ubuntu 22.04IntelliJ ...
    99+
    2023-07-02
  • spring重新加载bean的方法是什么
    Spring重新加载bean的方法有以下几种:1. 使用Spring的热部署功能:在开发环境中,可以配置Spring Boot的de...
    99+
    2023-10-10
    spring bean
  • spring中bean的初始化方法是什么
    在Spring中,bean的初始化可以通过两种方式来完成:使用@Bean注解的initMethod属性或者实现Initializin...
    99+
    2023-09-21
    spring
  • Spring 如何创建 Bean 对象
    这篇文章主要讲解了“Spring 如何创建 Bean 对象”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring 如何创建 Bean 对象”吧!从整体上...
    99+
    2024-04-02
  • Java Spring Cloud客户服务创建方法是什么
    这篇文章主要讲解了“Java Spring Cloud客户服务创建方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java Spring Cloud客户服务创建方法是什么”吧!新建一...
    99+
    2023-06-05
  • Spring中bean集合注入的方法是什么
    这篇文章主要讲解了“Spring中bean集合注入的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring中bean集合注入的方法是什么”吧!Spring作为项目中不可缺少的底...
    99+
    2023-07-02
  • Spring Bean中Bean的注册是什么
    这篇文章主要介绍“Spring Bean中Bean的注册是什么”,在日常操作中,相信很多人在Spring Bean中Bean的注册是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spr...
    99+
    2023-06-29
  • Spring创建bean实例的几种方式分享
    目录前言环境通过bean的class属性创建实例(带参构造器)工厂方法(静态工厂方法)工厂方法(实例工厂方法)工厂bean总结前言 Spring常见的创建bean实例的方式有: 1....
    99+
    2024-04-02
  • Spring IOC容器FactoryBean工厂Bean怎么创建
    本篇内容主要讲解“Spring IOC容器FactoryBean工厂Bean怎么创建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring IOC容器FactoryBea...
    99+
    2023-06-30
  • Spring创建bean的几种方式及使用场景
    目录1、@Configuration注解2、@Bean注解3、@Import注解3.1、导入标记有@Configuration的配置类3.2、导入ImportSelector的实现类...
    99+
    2023-05-18
    Spring创建bean Spring bean
  • Spring中Bean初始化和销毁的方法是什么
    今天小编给大家分享一下Spring中Bean初始化和销毁的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Sprin...
    99+
    2023-07-06
  • Spring Bean的定义概念和使用方法是什么
    本篇内容介绍了“Spring Bean的定义概念和使用方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!定义Spring b...
    99+
    2023-07-06
  • spring Bean创建的完整过程记录
    目录前言bean创建的流程图快速开始总结前言 复习一下spring实现IOC的源码流程准备工作: ​强烈建议大家从git上拉取spring源码来学习Spring源码。因为里面相较于I...
    99+
    2024-04-02
  • Spring创建Bean的生命周期详析
    目录1.Bean 的创建生命周期2.Spring AOP 大致流程3.Spring 事务4.Spring 源码阅读前戏BeanDefinitionBeanDefinitionRead...
    99+
    2024-04-02
  • clickhouse创建表的方法是什么
    在ClickHouse中,可以使用SQL语句来创建表。以下是一个简单的示例: CREATE TABLE my_table ( ...
    99+
    2024-03-01
    clickhouse
  • oracle创建dblink的方法是什么
    在Oracle数据库中,可以使用CREATE DATABASE LINK语句创建数据库链接(dblink)。 创建数据库链接的语法如...
    99+
    2024-04-09
    oracle
  • oracle directory创建的方法是什么
    在 Oracle 数据库中,要创建一个目录(directory),可以使用以下的 SQL 语句: CREATE OR REPLACE...
    99+
    2024-04-09
    oracle
  • sqlserver创建表的方法是什么
    使用 CREATE TABLE 语句创建表,例如: CREATE TABLE 表名 ( 列1 数据类型, 列2 ...
    99+
    2024-04-09
    sqlserver
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作