【spring源码学习】spring的IOC容器在初始化bean过程

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 【一】初始化IOC的bean的时候Spring会执行的一些回调方法(1)spring bean创建的前置处理    =>ApplicationContextAwareProcessor 在创建bean的时候调用      bean.

【一】初始化IOC的bean的时候Spring会执行的一些回调方法

(1)spring bean创建的前置处理

    =>ApplicationContextAwareProcessor 在创建bean的时候调用

      bean.setEnvironment(this.applicationContext.getEnvironment())

      bean.setEmbeddedValueResolver(new EmbeddedValueResolver(this.applicationContext.getBeanFactory()))

      bean.setResourceLoader(this.applicationContext)

      bean.setApplicationEventPublisher(this.applicationContext)

      bean.setMessageSource(this.applicationContext)

      setApplicationContext(this.applicationContext)

    =>在该阶段spring配置的或者我们自定义的 BeanPostProcessor的接口实现会执行postProcessBeforeInitialization(final Object bean, String beanName)方法 中调用相关Aware的接口方法。


(2)spring的Aware的相关接口的调用

    =>BeanNameAware的setBeanName(beanName)

    =>BeanClassLoaderAware的setBeanClassLoader(getBeanClassLoader())

    =>BeanFactoryAware 的setBeanFactory(AbstractAutowireCapableBeanFactory.this)
(3)spring的InitializingBean的接口的调用
    =>afterPropertiesSet()方法的调用

(4)bean中配置的init方法

    =>自定义配置

(5)spring bean创建的后置处理

    =>在该阶段spring配置的或我们自定义的BeanPostProcessor的接口实现会执行postProcessAfterInitialization(Object bean, String beanName)方法
    =>例如事务管理代理,动态代理的代理对象创建,都在这个环节完成。

 

相关文章
|
17天前
|
XML Java 数据格式
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
19 1
|
17天前
|
XML druid Java
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
Spring5系列学习文章分享---第二篇(IOC的bean管理factory+Bean作用域与生命周期+自动装配+基于注解管理+外部属性管理之druid)
25 0
|
15天前
|
Java Spring 容器
使用ContextLoaderListener初始化Spring容器
使用ContextLoaderListener初始化Spring容器
|
10天前
|
Java 微服务 Spring
微服务04---服务远程调用,根据订单id查询订单功能,根据id查询订单的同时,把订单所属的用户信息一起返回,Spring提供了一个工具RestTemplate,Bean写在对象前面,以后可以在任何地
微服务04---服务远程调用,根据订单id查询订单功能,根据id查询订单的同时,把订单所属的用户信息一起返回,Spring提供了一个工具RestTemplate,Bean写在对象前面,以后可以在任何地
|
druid Java 数据库连接
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制
|
5天前
|
Java 应用服务中间件 开发者
Java面试题:解释Spring Boot的优势及其自动配置原理
Java面试题:解释Spring Boot的优势及其自动配置原理
28 0
|
13天前
|
Java 开发者 Spring
深入理解Spring Boot中的自动配置原理
深入理解Spring Boot中的自动配置原理
|
14天前
|
前端开发 Java 微服务
Spring Boot与微前端架构的集成开发
Spring Boot与微前端架构的集成开发
|
20天前
|
Java
springboot自定义拦截器,校验token
springboot自定义拦截器,校验token
33 6
|
21天前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
23 2