background image

 

面向方面的编程,即 AOP,是一种编程技术,它允许程序员对横切关注点或横切典型的
职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将

 

那些影响多个类的行为封装到可重用的模块中。

AOP   

和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序开发中的复杂

 

问题。在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中

 

才能实现日志功能。在 AOP 方式中,可以反过来将日志服务模块化,并以声明的方式将

 

它们应用到需要日志的组件上。当然,优势就是 Java 类不需要知道日志服务的存在,也

 

不需要考虑相关的代码。所以,用 Spring AOP 

 

编写的应用程序代码是松散耦合的。

AOP 

 

的功能完全集成到了 Spring 

 

事务管理、日志和其他各种特性的上下文中。

IOC 

 

容器

Spring 

 

设计的核心是 org.springframework.beans 

 

包,它的设计目标是与 JavaBean 

组件一起使用。这个包通常不是由用户直接使用,而是由服务器将其用作其他多数功能的

 

底层中介。下一个最高级抽象是 BeanFactory 接口,它是工厂设计模式的实现,允许通
过名称创建和检索对象。BeanFactory 

 

也可以管理对象之间的关系。

BeanFactory 

 

支持两个对象模型。

 

单态 模型提供了具有特定名称的对象的共享实例,可以在查询时对其进行检索 。
Singleton 

 

是默认的也是最常用的对象模型。对于无状态服务对象很理想。

 

原型 模型确保每次检索都会创建单独的对象。在每个用户都需要自己的对象时,原型模

 

型最适合。
bean 

 

工厂的概念是 Spring 

 

作为 IOC 容器的基础。IOC 将处理事情的责任从应用程序代

码转移到框架。正如我将在下一个示例中演示的那样,Spring 

 

框架使用 JavaBean 属性

 

和配置数据来指出必须设置的依赖关系。

BeanFactory 

 

接口

 

因为 org.springframework.beans.factory.BeanFactory 是一个简单接口,所以可以

 

针对各种底层存储方法实现。最常用的 BeanFactory 

 

定义是 XmlBeanFactory,它根据 

XML 

 

文件中的定义装入 bean

 

,如清单 1 

 

所示。

 

清单 1. XmlBeanFactory 
BeanFactory

 

factory

 

=

 

new

 

XMLBeanFactory(new 

FileInputSteam("mybean.xml"));