AOP@Work: 用AspectJ和Spring进行依赖项插入 - 编程入门网
一个方面插入所有客户验证服务的依赖项。方面得到合 适服务的最简单方法就是把服务插入到方面自身!清单 5 显示了一个示例:
清单 5. 服务插入器方面
AOP@Work: 用AspectJ和Spring进行依赖项插入(6)时间:2011-09-07 IBM Adrian Colyer这个解决方案提供了两级控制。服务本身实际的定义是在 Spring 的配置文 件中提供的,就像清单 6 中的 XML 片段示例一样: 清单 6. 服务插入器配置
服务的客户只需要实现 AccountOperationValidationClient 接口,那么就 会自动用 Spring 定义的服务的当前实例对它们进行配置。 重复插入 在 Spring 中的查询方法插入查询方法插入是 Spring 容器支持的一种高级 特性:由容器覆盖被管理 bean 的抽象或具体方法,返回在容器中查询另一个命 名 bean 的结果。查询通常是非单体 bean。查询依赖项的 bean ,用被查询 bean 类型所声明的返回类型,定义查询方法。Spring 配置文件在 bean 的内部 使用 <lookup-method> 元素告诉 Spring 在调用查询方法时应当返回什 么 bean 实例。请参阅 参考资料 学习关于这项技术的更多内容。带有 HotSwappable 目标源的 Spring AOP 代理提供了另一种方法。 .迄今为止,我介绍的解决方案都是在对象初始化之后立即配置对象。但是, 在某些情况下,客户需要与之协调的对象在运行的时候变化。例如,通过与系统 进行交互,销售团队可以动态地为在线预订应用程序修改报价策略和座位分配策 略。与报价策略和座位分配策略交互的预订服务需要的策略实现,应当是预订时 的实现,而不是预订服务第一次初始化的时候实现的版本。在这种情况下,可以 把依赖项的插入延迟到客户第一次需要它的时候,并在每次引用依赖项的时候, 将依赖项的最新版本重新插入客户。 这个场景的基本技术包括字段级插入或 getter 方法覆盖。在进入示例之前 ,我要再次强调:我要介绍的插入技术所面向的对象,是在 Spring 容器的控制 之外 创建的。对于 Spring 创建的对象,Spring 容器已经提供了解决这些需求 的简单机制。 字段级插入 在下面的示例中,可以看出如何为延迟插入或重复 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |