1.ico和aop
1.IOC 控制反转,平常由我们自己new创建对象,现在交给spring 容器管理
2.aop 面向切面编程,应用场景少一半用于日志监控或者事务控制或者方法权限控制
2.自定义实现IOC和AOP思路
- IOC
把类的全限定类名配置在xml中
解析xml通过反射实例化对象并把对象存放在map中
- AOP
通过动态代理实现方法增强
3.spring高级特性
- IOC容器对象生命周期
单例模式:singleton(默认的)
对象出⽣:当创建容器时,对象就被创建了。
对象活着:只要容器在,对象⼀直活着。
对象死亡:当销毁容器时,对象就被销毁了。
⼀句话总结:单例模式的bean对象⽣命周期与容器相同。
多例模式:prototype
对象出⽣:当使⽤对象时,创建新的对象实例。
对象活着:只要对象在使⽤中,就⼀直活着。
对象死亡:当对象⻓时间不⽤时,被java的垃圾回收器回收了。
⼀句话总结:多例模式的bean对象,spring框架只负责创建,不负责销毁。
- lazy-Init 延迟加载
ApplicationContext 容器的默认⾏为是在启动服务器时将所有 singleton bean 提前进⾏实例化。提前实例化意味着作为初始化过程的⼀部分,ApplicationContext 实例会创建并配置所有的singleton。
设置 lazy-init 为 true 的 bean 将不会在 ApplicationContext 启动时提前被实例化,⽽是第⼀次向容器过 getBean 索取 bean 时实例化的。
- SpringBean的生命周期