Spring框架的IOC与及AOP
Spring 实现的两个核心技术(Ioc、Aop)
1) Spring 简介
Spring 是一个全方位的应用程序开发框架( framework ),是潜在的一站式解决方案,它定位于与典型应用相关的大部分基础结构。自从 2003 年发布以来, Spring Framework 已经对 Java 企业应用体系产生了前所未有的冲击,尽管历史不长,但它拥有深厚的历史根基。如今 Spring 已风靡全球,甚至有取代 EJB 的趋势,最新的 EJB3.0 规范也吸取了 Spring 的设计理念,如今这陈风也刮到了华为公司,越来越多的项目正在使用或准备使用 Spring 架构开发,所以有关 Spring 架构下的单元测试如何做是我们必须面对的问题。简单说来, Spring 有以下特性:
1.轻量级
相对于一些重量级的 EJB 容器, Spring 的核心包在文件容量上只有不到 1MB 的大小,而使用 Spring 核心包所需要的资源负担也是很小的。
2.非侵入性
就是说你的开发对 Spring 的依赖很小,只需要较少的 Spring API 调用,甚至你的对象完全感知不到 Spring 容器的存在,提高了对象在不同容器环境下移植的可能性。
3.完全开放性
Spring 并不排斥已有的软件结构,如 Struts 、 EJB 、 Hibernate 等,能够将已有系统很好地集成进 Spring 。
2) Spring 实现的两个核心技术
1.IoC—Inversion of Control:控制反转
中文翻译为 控制反转 ,在 Spring 里的实现是 Dependency Injection ( 依赖注入 ),就是说对象之间的依赖关系在后期通过配置文件(典型为 XML 文件)生成, Spring 里实现了两种注入方式:构造函数注入、 Setter 方法注入。我们可以这样理解这种技术带来的好处,前期我们只需要关注单个对象(组件)的功能实现,具体的业务实现是通过后期配置出来的,不同的配置可以产生不同的业务功能。
2.AOP—Aspect-oriented programming:面向切面编程
面向方面的编程 ,但我觉得翻译为 面向切面的编程 更容易理解一些。 AOP 大大降低了对象之间的耦合程度,与 IoC 一样,能够通过后期的配置动态为对象增加新的特性,甚至能够为对象动态增加方法。在 Spring 下, AOP 的实现不需要借助专门的 AOP 定义语言,只需要普通的 Java 对象和 XML 配置文件即可。
说明:文章引用于(http://www.tuicool.com/articles/QNNvMn);