Spring容器的创建原理
1.new ioc容器(AnnotationConfigApplicationContext 注解ioc)
2.refresh()方法调用
2.1 prepareRefresh()刷新前的预处理
a:initPropertySources();
b:getEnvironment().validateRequiredProperties();初始化信息的校验
c:earlyApplicationEvents 事件触发准备器
2.2 obtainFreshBeanFactory() 获取beanfactory
a:refreshBeanFactory();刷新beanfactory 穿建了一个 this.beanFactory = new DefaultListableBeanFactory(); 并设置id
b:getBeanFactory();返回上面创建的beanfactory;
2.3 prepareBeanFactory(beanFactory); beanfactory的预准备工作;类加载器 ,解析器,beanpostprocessor;可以解析的自动装配;
2.4 beanfactoryPostProcessor
a:子类通过重写这个方法来在beanfactory创建预准备完成做进一步设置。
**************************************************************************************************BeanFactory的创建以及预准备工作***************************************************************************************************
2.5:invokeBeanFactoryPostProcessors(beanFactory); beanfactory的后置处理器 ,在beanfactory标准初始化之后执行
a:BeanDefinitionRegistry
2.6 registerBeanPostProcessors(beanFactory); 注册beanpostprocessor
Spring容器的创建原理的更多相关文章
- Spring容器的创建刷新过程
Spring容器的创建刷新过程 以AnnotionConfigApplicationContext为例,在new一个AnnotionConfigApplicationContext的时候,其构造函数内 ...
- Spring中各种扩展原理及容器创建原理
一.BeanFactoryPostProcessor BeanFactory的后置处理器:在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容:所有的bean定义已经保 ...
- Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入
本节主要内容: 1.实例化Spring容器示例 2.利用Spring容器创建JavaBean对象 3.如何控制Bean实例化 4.利用Spring实现bean属性sett ...
- (转)编码剖析Spring管理Bean的原理
http://blog.csdn.net/yerenyuan_pku/article/details/52832434 在Spring的第一个案例中,我们已经知道了怎么将bean交给Spring容器进 ...
- Spring 容器
Spring提供了两个核心接口:BeanFactory和ApplicationContext,其中applicationContext是BeanFactory的子接口. 他们都可代表Spring容器, ...
- 使用Spring容器
Spring的两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口. Spring容器就是一个大的Bea ...
- Spring 读书笔记-----使用Spring容器(一)
pring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口.他们都可代表Spring容器,Spri ...
- (转)Spring 读书笔记-----使用Spring容器(一)
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口.他们都可代表Spring容器,Spr ...
- Spring容器
1.Spring简介: a)Spring春天 b)官网:https://spring.io c)设计理念:轮子理念,不要重复创造轮子: d)Spring可以被理解为一个容器,用于管理其他的框架: e) ...
随机推荐
- mysql 统计索引执行情况
select distinct b.TABLE_SCHEMA,b.TABLE_NAME , b.INDEX_NAME , a.count_starfrom performance_schema.tab ...
- JSTL中获取URL参数
使用JSTL时,URL会被隐含的对象param包裹起来,使用param.变量名,直接获取值 <body>hello:${param.name}</body> 依据此逻辑,在使用 ...
- Java 实现简单的人机猜拳游戏
import java.util.Scanner; import java.util.Random; public class TestGuess{ public static void main(S ...
- uniGUI页面标题和页面背景的更改(03)
---------------------------------------------------------------------------------------------------- ...
- python下载图片的代码块
import urllib.requestimgurl="https://ss3.baidu.com/9fo3dSag_xI4khGko9WTAnF6hhy/image/h%3D300/si ...
- Java 理论与实践: 哈希
有效和正确定义hashCode()和equals() 每个Java对象都有 hashCode() 和 equals() 方法.许多类 Override 这些方法的缺省实施,以在对象实例之间提供更深层次 ...
- mysql 通过localhost可以连接IP连接不上
因为MySQL默认没开 所以需要手动设置 开MySQL启远程连接的功能,在MySQL服务器控制台上执行以下命令: 设置权限: grant all privileges on *.* to 用户名@&q ...
- Java 代码空间复杂度查看工具
SourceMonitor 下载地址:http://www.campwoodsw.com/sourcemonitor.html
- postgresql shell脚本传递参数并执行sql脚本并
参考: https://stackoverflow.com/questions/7389416/postgresql-how-to-pass-parameters-from-command-line ...
- 一、jsp和Servlet基础理论及jstl和EL表达式用法
1.题外话:使用JSP有近一年半的时间了,但是开发量不大.昨天部门突然让做个读取EXCLE文件,然后在前台页面进行展示.并通过点击查看按钮可以对每条明细记录进行跳转后进行详情查看,并按照页面原型进行页 ...