1.Spring框架
1.Spring是什么
一个轻量级框架,提供了ioc和aop,方便继承其他组件,支持单元测试和web开发
核心组件
aop
web
test
2.IOC
控制反转
将对象交由容器管理,
3.Bean的作用域
单例 默认,每次获取都是同一个 饿汉模式,启动时实例已经加载完毕
多例 每次获取都会新建 懒汉模式
4.Bean的生命周期
1.扫描XML和注解获取bean的配置信息,(name/classtype)
2.实例化:通过反射创建对象,检查bean是否配置了前置处理器,有则直接返回代理对象,放入三级缓存中
3.属性赋值:属性填充,检测是否有其他依赖注入,如果有其他的bean注入,且没有在缓存中找到,先去实例化这个bean
4.初始化:如果有实现aware接口,回调对应的aware方法,调用配置的初始化方法,回调初始化之后的方法
5.销毁:spring上下文关闭的时候,销毁bean
5.Spring MVC
核心处理器接收请求,根据请求信息调用handlermapping
handlermapping:根据uri匹配查找handler,并封装
核心处理器调用HandlerAdapter,执行适配的handler(controller)
handler完成请求的处理后返回ModelAndView给核心处理器
ViewResolver根据返回查到实际的view
核心处理器根据model渲染view,返回给请求者
6.Spring 三级缓存
一级:已经生成完成的bean
二级:bean的早期对象,未完全实例化
三级:bean的代理对象
多一级缓存是为了区分是否需要做代理增强
初始化对象,值为null,从三级缓存中获取不到要注入的对象,
先放入三级缓存,如果需要增强,则生成代理对象,
7.aop
面向切面
动态代理
cglib 继承类
jdk 实现接口
AspectJ