大部分的企业架构都基于Spring框架。它的成功来自于理念,而不是技术,它最为核心的理念是IoC(控制反转)和AOP(面向切面编程),其中IoC是Spring的基础,而AOP则是其重要的功能,最为典型的当属数据库事务的使用。
Spring的概述
Spring提供了以下策略:
•对于POJO的潜力开发,提供轻量级和低侵入的编程,可以通过配置(XML、注解等)来扩展POJO的功能,通过依赖注入的理念去扩展功能,建议通过接口编程,强调OOD的开发模式理念,降低系统耦合度,提高系统可读性和可扩展性。
•提供切面编程,尤其是把企业的核心应用——数据库应用,通过切面消除了以前复杂的try...catch...finally...代码结构,使得开发人员能够把精力更加集中于业务开发而不是技术本身,也避免了try...catch...finally语句的滥用。
•为了整合各个框架和技术的应用,Spring提供了模板类,通过模板可以整合各个框架和技术,比如支持Hibernate开发的HibernateTemplate、支持MyBatis开发的SqlSessionTemplate、支持Redis开发的RedisTemplate等,这样就把各种企业用到的技术框架整合到Spring中,提供了统一的模板,从而使得各种技术用起来更简单。
Spring IoC概述
Spring IoC(Inversion of Control)即控制反转,是一个比较抽象的概念,是Spring框架的核心,用来消减计算机的耦合问题。
依赖注入(Dependence Injection)是IoC的另一种说法,是从不同角度,描述相同的概念。
从Spring容器角度来看,Spring容器负责将被依赖对象赋值给调用者成员变量,相当于调用者注入他所以来的实例,这就是Spring依赖注入。
控制反转是一种通过描述(在Spring中可以通过XML或注解)并通过第三方去产生或获取特性对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法就是依赖注入。
控制反转是一个比较抽象的概念,我们举例说明。在实际生活中,人们要用到一样东西时,人们的基本想法是找到东西,比如想喝杯橙汁,在没有饮品店的日子里,最直观的做法是,要买果汁机、橙子,准备开水。请注意这是你自己“主动”创造的过程,也就是一杯橙汁需要主动创造。然而到了今时今日,由于饮品店的盛行,已经没有必要自己去榨橙汁了。想喝橙汁的想法一出现,第一个想法是找到饮品店的联系方式,通过电话、微信等渠道描述你的需要、地址、联系方式等,下订单等待,过会就会有人送上橙汁了。请注意你并没有“主动”创造橙汁,也就是橙汁是由饮品店创造的,而不是你,但是也完全达到了你的要求。
Spring IoC容器
Spring IoC容器的作用,它可以容纳我们所开发的各种Bean,并且我们可以从中获取各种发布在Spring IoC容器里的Bean,并且通过描述可以得到它。