spring学习
2020-06-03 19:30:15 0 举报
AI智能生成
自我学习
作者其他创作
大纲/内容
IOC
IOC定义:控制反转
设计与实现:
BeanFactory
实现接口
HierarchicalBeanFactory
ConfigurableBeanFactory
ListableBeanFactory
AutowireCapableBeanFactory
定义基本的IoC容器的规范
ApplicationContext
容器的高级形态,应用上下文
实现接口
高级形态
MessageSource:信息源
ResourceLoader:访问资源
ApplicationEventPublisher:支持应用事件
容器初始化
初始化是由refresh()方法来启动的
初始化过程
Resource定位,ResourceLoader定义过程
BeanDefinition的载入
BeanDefinition的注册
IoC容器的依赖注入
依赖注入发生的时间
用户第一次通过getBean方法向IoC容索要Bean时,IoC容器触发依赖注入
当用户在Bean定义资源中为< Bean >元素配置了lazy-init属性,即让容器在解析注册Bean定义时进行预实例化,触发依赖注入
如何实现依赖注入
BeanFactory#getBean()
实现:AbstractBeanFactory
单例bean:从缓存中获取
原型模式bean:新建
实现方式步骤
创建:AbstractAutowireCapableBeanFactory#createBeanInstance
注入属性:AbstractAutowireCapableBeanFactory#populateBean
bean的生命周期
实例化一个Bean
按照Spring上下文对实例化的Bean进行配置
BeanNameAware#setBeanName(String)方法的实现
BeanFactoryAware#setBeanFactory的实现,设置工厂
ApplicationContextAware#setApplicationContext:设置传入Spring上下文
BeanPostProcessor#postProcessBeforeInitialization
InitializingBean#afterPropertiesSet,如果定义init-method,调用
BeanPostProcessor
DisposableBean
destroy-method
自动装配的实现
实现过程
对Bean的属性迭代调用getBean方法,完成依赖Bean的初始化和依赖注入
将依赖Bean的属性引用设置到被依赖的Bean属性上
将依赖Bean的名称和被依赖的Bean的名称存储在IoC容器的集合中
AOP
AOP相关概念
切面(Aspect)
连接点(JoinPoint)
通知(Advice)
切入点(PointCut)
目标对象(Target Object)
AOP代理(Aop Proxy)
引入(Introduction)
织入(Weaving)
AOP实现
通过BeanPostProcessor后置事件
Spring事务
概述
实现
PlatformTransaction
AbstractPlatformTransaction
入口:TransactionInterceptor继承InitializingBean
0 条评论
下一页