Spring容器加载bean的过程(学习笔记)

简介: 个人学习笔记

1、我们通过xml或注解或配置编写代码方式声明bean的信息.
2、Spring都会把他们解析成一个BeanDefinition。每一个Bean对应一个BeanDefinition同时注册到BeanDefinitionRegistry,抽象类AbstractBeanDefinitionReader根据注册的BeanDefinitionRegistry得到bean的所有信息.
3、接着会进入到AbstractApplicationContext 的refresh()方法,这个方法包含了很多重要的方法
4、实例化BeanFactoryPostProcessor实现类,执行BeanFactoryPostProcessor的postProcessBeanFactorty方法创建工厂,接下来就是在工厂中实例化bean的。
5、在BeanFactory工厂中会实例化BeanPostProcessor实现类和InstantiationAwareBeanPostProcessorAdapter实现类。
6、执行InstantiationAwareBeanPostProcessorAdapter的postProcessBeforeInstantoation方法,接着执行bean的构造器
7、执行InstantiationAwareBeanPostProcessorAdapter的postProcessPropertyValues方法,为Bean注入属性。
8、调用BeanNameAware的setBeanName方法,以及调用BeanFactoryAware的setBeanFactory方法。
9、执行BeanPostProcessor的postProcessBeforeInitialization方法,调用InitializingBean的afterPropertiesSet方法,调用bean的init-method属性指定的初始化方法。执行BeanPostProcessor的PostProcessAfterInitialization方法

10、容器初始化成,执行正常调用后,下面开始摧毁容器。调用DiposibleBean的destory方法,调用bean的destory-method属性指定的初始化方法

实例化过程是在docreateBean 方法中,这也是一个很重要的方法

相关文章
|
7月前
|
搜索推荐 JavaScript Java
基于springboot的儿童家长教育能力提升学习系统
本系统聚焦儿童家长教育能力提升,针对家庭教育中理念混乱、时间不足、个性化服务缺失等问题,构建科学、系统、个性化的在线学习平台。融合Spring Boot、Vue等先进技术,整合优质教育资源,提供高效便捷的学习路径,助力家长掌握科学育儿方法,促进儿童全面健康发展,推动家庭和谐与社会进步。
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
1008 26
|
监控 Java 应用服务中间件
微服务——SpringBoot使用归纳——为什么学习Spring Boot
本文主要探讨为什么学习Spring Boot。从Spring官方定位来看,Spring Boot旨在快速启动和运行项目,简化配置与编码。其优点包括:1) 良好的基因,继承了Spring框架的优点;2) 简化编码,通过starter依赖减少手动配置;3) 简化配置,采用Java Config方式替代繁琐的XML配置;4) 简化部署,内嵌Tomcat支持一键式启动;5) 简化监控,提供运行期性能参数获取功能。此外,从未来发展趋势看,微服务架构逐渐成为主流,而Spring Boot作为官方推荐技术,与Spring Cloud配合使用,将成为未来发展的重要方向。
550 0
微服务——SpringBoot使用归纳——为什么学习Spring Boot
|
11月前
|
安全 Java 数据库
Spring Boot 框架深入学习示例教程详解
本教程深入讲解Spring Boot框架,先介绍其基础概念与优势,如自动配置、独立运行等。通过搭建项目、配置数据库等步骤展示技术方案,并结合RESTful API开发实例帮助学习。内容涵盖环境搭建、核心组件应用(Spring MVC、Spring Data JPA、Spring Security)及示例项目——在线书店系统,助你掌握Spring Boot开发全流程。代码资源可从[链接](https://pan.quark.cn/s/14fcf913bae6)获取。
1933 3
|
Java Spring
Spring框架的学习与应用
总的来说,Spring框架是Java开发中的一把强大的工具。通过理解其核心概念,通过实践来学习和掌握,你可以充分利用Spring框架的强大功能,提高你的开发效率和代码质量。
302 20
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
458 12
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
589 12
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
534 6
|
9月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1268 108