正在加载图片...
哪一个组件需要哪一项服务。容器(在 Spring框架中是IOC容器)负责将 这些联系在一起。 在典型的IOC场景中,容器创建了所有对象,并设置必要的属性将它们连 接在一起,决定什么时间调用方法。下表列出了IOC的一个实现模式 服务需要实现专门的接口,通过接口,由对象提供这些 类服务,可以从对象查询依赖性(例如,需要的附加服务) 型1 类型2通过 JavaBean的属性(例如 setter法)分配依赖性 类型3依赖性以构造函数的形式提供,不以 JavaBean属性的 形式公开 Spring框架的IOC容器采用类型2和类型3实现。 21面向方面的编程 面向方面的编程,即AOP,是一种编程技术,它允许程序员对横切关注 点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。 AOP和IOC是补充性的技术,它们都运用模块化方式解决企业应用程序 开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放 在所有方法和Java类中才能实现日志功能。在AOP方式中,可以反过来将 日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优 势就是Java类不需要知道日志服务的存在,也不需要考虑相关的代码。所以 用 Spring AOP编写的应用程序代码是松散耦合的 AOP的功能完全集成到了 Spring事务管理、日志和其他各种特性的上下 文中。 软件系统通常由多个组件构成,每个组件负责一个特定的功能领域。但是, 这些组件也经常承担它们的核心功能之外的额外责任。系统服务(例如日志、 事务管理和安全性)经常发现自己跑到了别的组件的领域里,而这些组件的核 心职责是其他事情。结果就是所谓的“代码纠缠”,或者更简单点儿说团糟”。 面向方面编程是一种试图解决这个问题的编程技术,它把关注点的隔离提升为 核心的编程概念 使用AOP时,仍然是在一个地方定义系统的公共功能,但是可以声明性地 定义如何和在哪里应用这个功能。如果对横切关注点(例如日志和事务管理) 进行了模块化,那么不用修改每个单独的类,就可以向代码中添加新特性。这类 模块化的关注点称作方面。 可以在任何Java?企业版(J2EE)服务器中使用 Spring框架的功能。而且,哪一个组件需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 负责将 这些联系在一起。 在典型的 IOC 场景中,容器创建了所有对象,并设置必要的属性将它们连 接在一起,决定什么时间调用方法。下表列出了 IOC 的一个实现模式。 类 型 1 服务需要实现专门的接口,通过接口,由对象提供这些 服务,可以从对象查询依赖性(例如,需要的附加服务) 类型 2 通过 JavaBean 的属性(例如 setter 方法)分配依赖性 类型 3 依赖性以构造函数的形式提供,不以 JavaBean 属性的 形式公开 Spring 框架的 IOC 容器采用类型 2 和类型 3 实现。 2.1 面向方面的编程 面向方面的编程,即 AOP,是一种编程技术,它允许程序员对横切关注 点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中。 AOP 和 IOC 是补充性的技术,它们都运用模块化方式解决企业应用程序 开发中的复杂问题。在典型的面向对象开发方式中,可能要将日志记录语句放 在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将 日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优 势就是 Java 类不需要知道日志服务的存在,也不需要考虑相关的代码。所以, 用 Spring AOP 编写的应用程序代码是松散耦合的。 AOP 的功能完全集成到了 Spring 事务管理、日志和其他各种特性的上下 文中。 软件系统通常由多个组件构成,每个组件负责一个特定的功能领域。但是, 这些组件也经常承担它们的核心功能之外的额外责任。系统服务(例如日志、 事务管理和安全性)经常发现自己跑到了别的组件的领域里,而这些组件的核 心职责是其他事情。结果就是所谓的“代码纠缠”,或者更简单点儿说“一团糟”。 面向方面编程是一种试图解决这个问题的编程技术,它把关注点的隔离提升为 核心的编程概念。 使用 AOP 时,仍然是在一个地方定义系统的公共功能,但是可以声明性地 定义 如何 和 在哪里 应用这个功能。如果对横切关注点(例如日志和事务管理) 进行了模块化,那么不用修改每个单独的类,就可以向代码中添加新特性。这类 模块化的关注点称作 方面。 可以在任何 Java? 企业版(J2EE) 服务器中使用 Spring 框架的功能。而且
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有