IOC思想: inversion of controll 指的是 将对象的控制权交给框架,使用的时候按需使用,不需要再去手动new对象。
IOC容器:BeanFactory
在Spring项目启动的时候,会从xml文件或者注解中加载对象的声明,生成BeanDefinition,然后BeanDefiniton放到IOC容器BeanFactory中,下一步反射实例化对象,注入属性。这样,在启动后,对象实例已经生成了。
AOP思想是:aspect oriented programing 面向切面编程。核心思想是不修改当前切面的基础上增加新功能,实现方式是动态代理。其中动态代理有两种:基于jdk的和基于cglib的。
除了在Spring中,其他非常多的框架都用到了AOP思想,比如Mybatis的插件,Spring MVC的拦截器。
Spring解决了set方法注入的,单例的循环依赖。
为什么不可以解决构造方法的循环依赖?因为set方法注入发生于实例化之后,有参构造方法发生于实例化的时候
为什么需要三级缓存来解决循环依赖?三级缓存即为3个Map,首先至少需要2个Map解决循环依赖问题,1个放成品,1个放半成品。Spring框架又设置了1个Map,这个Map的value是对象工厂,用来解决IOC问题。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧