spring解耦原理
- 普通java代码实现功能
class Zhang{ void doSome(){ Xing xi=new Xing(); Xi.doSome(); XXX x = new XXX(); x.xx(); } } class Xing{ void doSome(){ XXX x = new XXX(); x.XX(); XXX x = new XXX(); x.xx(); } }
普通java实现功能时,每个类中都要new一些对象,也就是所谓的依赖关系,类与类之间直接互相调用,互相依赖,关系错综复杂,如下图。
![图片来自互联网][1]
- Spring实现Bean管理
class Person{ @Resource Private XXX xx; @Resource Private YYY yy; @Resource Private ZZZ zz; void doSome(){ xx.xx(); yy.yy(); } } class Chinese{ @Resource Private Person ps; void doSome(){ ps.doSome(); } }
对象在使用的时候不是去new,而是通过IOC容器获取,对象与对象之间不再有直接联系,他们通过中间人IOC容器联系。
-
总结
Spring IOC 容器 通过反射拿到对象的实例,使类的功能更加单一化,减少了类与类的依赖关系,So,降低了耦合