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);