如何理解Spring框架的核心设计思想IoC模式
Spring不单单只是一个框架,现在已经成为了一个产品家族,包括一系列以Spring命名的产品。整个Spring家族最早的成员Spring框架,是目前流行的web开发框架Spring Boot以及微服务治理框架Spring Cloud的基础,可以说Spring框架的出现改变了企业级互联网Java开发的历史。
从Spring框架说起
Spring框架诞生的时候,正是Java EE和EJB大行其道之时,Rod Johnson认为EJB对于应用开发太过臃肿,因此设计了轻量级的开发框架Spring。
Spring框架的核心就是对象容器(Bean Container)
Spring核心设计思想是控制反转(IoC:Invension of Control),这个模式允许Spring框架可以和各种其他框架相互结合,成为一个万能的连接器,降低了程序模块间的耦合性。
比如最早流行的Web MVC框架Apache Struts,可以和Spring相结合,再加上持久层框架Hibernate,组成了当时最流行的SSH框架组合开发Java web程序。
后来MVC框架由Struts1.x升级为Struts2.x,又被Spring MVC所代替;持久层框架可以换成iBatis,又改名为MyBatis,Hibernate也升级为Spring Data JPA;整个框架组合中的Spring框架一直都在,真是铁打的Spring,流水的持久层。
那么究竟该如何理解Spring的IoC设计模式呢?IoC中文译为“控制反转”,那么究竟是谁的控制,又被谁反转了呢?
IoC思想起源
业内公认的IoC这个概念是1996年软件专家Michael Mattson在一篇有关探讨面向对象框架的文章中最先提出的。对于IoC概念的阐述,大家普遍推荐的文章是Martin Fowler的名篇《IoC容器和依赖注入模式》。
Martin Fowler是一位著名软件专家,专注于OOAD、UML、DDD以及敏捷开发