网上一搜索出来的就是什么一堆源码分析,什么什么的,就离谱,反射的章节就有基础的源码,需要你摆出来么?
看不下去了,所以用通俗的语言给初学Spring的 小伙伴们解释一下Spring框架使用的原因
在解释Spring之前 ,先回顾一下面向对象 User user =new User()
首先要搞懂 左边 是引用 右边 是对象
这是两个不同的东西
接下来Spring的 核心容器IOC
这里面存放了 所有通过Spring 创建的对象
用通俗的语言描述动态代理
我们使用Spring 每次拿的对象都是IOC里面拿出来的 User user =applicationContext.getBean("user",User.class);
User可以是一个接口 也可以是一个实现类
动态代理的 原理就是 假定 你原来拿到的是A对象 但是你进行了一些增加了 功能什么之类的 操作之后 applicationContext.getBean("user",User.class);这个给你的对象就不再是原来的A对象,而是实现了A功能并且加强了公功的B对象
这个B对象可能是User这个接口的实现类 或者 是User这个类的子类
这里就来了 user = B 一个父类引用指向了 子类对象 (多态)
从而实现了 不修改源代码的情况 增强功能
这就是为什么要使用 Spring的原因
总结: 为什么使用Spring 因为可以在不修改源代码的情况下 让引用指向不同的对象。