Spring框架原理2

Spring基础组件

有人问一个问题Spring中Bean是线程安全的吗?
首先,spring是帮我们创建和管理bean,bean从哪里来?是我们自己定义的。
bean的线程安全与否跟spring没什么关系。
以anotation来说一下各个组件。

配置组件

在这里插入图片描述

在这里插入图片描述
FactoryBean:负责将Bean注入到Ioc的bean。把需要注入的对象封装成FactoryBean;
BeanFactory:从Ioc中获取Bean对象。

注入组件

在这里插入图片描述

高仿真spring手写

ApplicationContext是spring最核心的Ioc工厂,也是spring的入口。getBean()是从容器中获取一个实例的方法。
在调用servlet init()方法时就要初始化ApplicationContext。
spring中默认是单例,而且是延时加载(lazy)的。DI是在初始化后发生的。
spring中发生DI由getBean()触发。
1、调用getBean()创建对象
2、立即就会发生DI

spring Ioc 和 DI 流程

1、调用Servlet init()方法
2、读取配置文件(properties、xml、yml)======》BeanDefinition

3、扫描相关类 =========》配置文件保存到了内存中BeanDefinition

4、ApplicationContext.getBean()
初始化Ioc容器,并且实例化对象。======》BeanWrapper 保存原始对象和原始对象的class,Bean的增强。
5、完成DI注入。

springmvc顶层设计

MVC九大组件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值