Spring框架是个分层架构,由7个模块组成,这些模块构建在核心容器之上。核心容器定义了创建、配置、管理bean的方式。
Spring Core
Spring上下文
Spring AOP
Spring DAO
Spring ORM
Spring Web 模块
Spring MVC 框架
Spring的核心是Ioc和AOP。AOP,面向方面的编程,是一种编程技术;IoC,控制反转是AOP的应用。SOC (Separation of Concerns, 分离关注) 是Ioc和AOP产生的原动力。通过功能分解得到关注点,这些关注点可以是Components,方面Aspects或服务Services。
IoC的重要特征是接口依赖,”Don’t call me, I will call you”,用于调用者和被调用者之间的解耦。IoC又称DI(Depedence Injection,依赖注射),是个初始化实例的过程,分为三种:
1 | 从JNDI或ServiceManager等获得被调用者,这里类似ServiceLocator模式。 | EJB/J2EE |
2 | 使用JavaBeans的setter方法 | Spring Framework,WebWork/XWork |
3 | 在构造方法中实现依赖 | Spring Framework |
使用IoC的代价,需要在客户端或其他某处进行调用者和被调用者之间联系的组装。所以,IoC并没有消除调用者和被调用者之间的联系,只是转移了这种联系。