SpringIOC的原理
利用java的反射功能实例化Bean并建立Bean之间的依赖关系,还提供Bean实例缓存管理、Bean生命周期管理、Bean实例代理、事件发布和资源装载等高级服务
Spring Bean装配流程
通过XML配置文件或注解实现Bean配置----->Bean容器中生成配置注册表——>根据注册表实例化Bean,装配关系----->将Bean实例载入Bean缓存池------>为上层业务程序提供运行环境
Spring Bean作用域
xml配置文件中,bean的定义中通过scope参数指定不同的模式
Singleton(单例):IOC容器只会存在一个共享的Bean实例,多个引用它,也始终指向同一个Bean对象。全局只有一个对象,多线程下不安全
Prototype(原型):每次引入该Bean实例,都会新创建一个Bean实例,每个都要自己的属性和状态
Request(请求级别):不同的HTTP请求会创建新的该Bean实例,该实例仅在该请求内有效,然后销毁
Session(会话级别):不同的Session请求会创建新的Bean实例,当前会话内有效,然后销毁
Global Session(全局会话):一个全局HTTP Session返回同一个Bean实例
Spring Bean生命周期
实例化Bean---->Bean配置----->执行初始化之前方法----->执行init-method初始化方法------>执行处理方法------>调用destory方法------>调用配置的destory-method方法
Spring的四种依赖注入
1、构造器注入
2、set方法注入
3、静态工厂注入
4、实例工厂注入
Spring AOP的原理
JDK动态代理:主要通过Proxy类和InvocationHandler接口来实现。Proxy类利用InvocationHandler动态创建一个符合某一接口的实例,生成目标类的代理对象。
```java
@Aspect//定义切面
public class Demo{
@Pointcut(value="execution(....)")//定义要拦截的方法
public void point(){}
@Before(value="point()")//定义前置通知
public void before(){}
@AfterReturning(value="point()")
@Around("point")
}
#### Spring MVC原理
##### 工作流程