写点什么

文章:使用 Spring 框架和 AOP 实现动态路由

  • 2007-07-31
  • 本文字数:755 字

    阅读完需:约 2 分钟

本文的大体思路是展示了一次业务交易如何动态地为子系统处理过程触发业务事件。本文所示的例子使用 Spring 框架和 Spring AOP 有效地解耦业务服务和子系统处理功能。

本文涉及到了几个非常重要的概念,比如数据访问对象(DAO)设计模式和面向方面编程(AOP)等。DAO 实际上是将持久库存取和操作代码封装到一个单独的层次,也就是在业务逻辑层和持久存储层之间引入一个抽象层。这样就大大简化了应用代码并提高了灵活性。理想情况下,对数据源所做的变动,仅仅需要改变数据访问对象就可以,从而实现了对业务对象的最小影响。Vigil 分析了 DAO 设计模式所提供的灵活性背后的原因:

DAO 设计模式所提供的的灵活性主要被归因于对象设计的最佳实践:用接口编程。该原则规定了具体对象必须实现一个接口,在调用程序中使用该接口而非具体对象本身。因此,你可以容易地替换一个不同的实现,而对客户端代码冲击很小。

AOP 是本文提到的另外一个非常重要的概念。其实 AOP 近几年来一直为技术社区所重视,因为通过 AOP 可以帮助程序员在一个单独的 Aspect 模块中表达横向切面关注点,从而解决因为在程序中引入关注点而使代码被分散和缠结、难于理解和维护的情况。对本文提到的 Spring AOP,作者也分析了它的优点:

Spring AOP 用纯 Java 实现。不需要特殊编译处理。AspectJ 需要特殊编译处理。Spring AOP 不需要控制各层级类装载器,因而适合用在 J2EE web 容器或应用服务器中。Spring 2.0 还提供了与 AspectJ 的紧密集成。

关注点分离是开发面向服务架构的关键原则。它需要被分别应用到基础架构层和实现层。本文示范了如何使用 Spring 框架的依赖注入原则和 AOP 特性分离出横向切面关注点。正如作者在例子代码中所表达的,使用这一方法能让我们把处理服务每个关注点的代码的交叉依赖减到最小。

查看全文:使用 Spring 框架和 AOP 实现动态路由

2007-07-31 01:501487

评论

发布
暂无评论
发现更多内容

软件定义汽车时代下的云原生转型实战方法论

York

容器 云原生 车联网 软件架构 6月月更

【Spring 学习笔记(六)】Spring Bean 后置处理器

倔强的牛角

Java spring 6月月更

5G、AI、云计算,什么是云渲染?

Finovy Cloud

人工智能 云服务器 GPU服务器

Data Summit 2022 大会资料分享(共23个)

墨天轮

数据库 AI 数据仓库 数据湖 BI

TiFlash 源码阅读(三)TiFlash DeltaTree 存储引擎设计及实现分析 - Part 1

PingCAP

彰显个性│github和gitlab之自定义首页样式

自定义 主题 6月月更

大数据培训Linux常用命令总结分享

@零度

大数据 Linux

趣步运动挖矿系统开发模式详情

开发微hkkf5566

淘金家园NFT链游系统开发逻辑分析

开发微hkkf5566

IET技能调研首次落地亚洲国家 为阿联酋工程技术发展提供洞察

E科讯

GraphX 图计算实践之模式匹配抽取特定子图

NebulaGraph

图数据库 知识图谱 Nebula Graph

Hoo研究院|5月下半月区块链行业投资机构动向

区块链前沿News

Hoo

云计算运维需要经常上夜班吗?需要倒班吗?

行云管家

云计算 运维 IT运维

用 Golang 重写 rsync(2):方案的选择

老豆还编程

c golang

3.0.0 alpha 重磅发布!九大新功能、全新 UI 解锁调度系统新能力

亚马逊云科技 (Amazon Web Services)

UI 系统 新功能 Tech 专栏

淘金家园NFT链游系统开发模式详解

开发微hkkf5566

分布式数据库下子查询和 Join 等复杂 SQL 如何实现?

TDengine

数据库 tdengine 时序数据库

WEB3:什么是去中心化数据库

devpoint

分布式 去中心化 Web3.0 6月月更 InfoQ极客传媒15周年庆

一站式智能运维解决方案,企业系统的隐形守护者

云桌派

阿里云 IT 解决方案 智能运维 客户案例

如何正确的评测视频画质

百度Geek说

视屏质量

阿里超大规模 Flink 集群运维实践

阿里云大数据AI技术

大数据 flink 运维

函数计算异步任务能力介绍 - 任务触发去重

阿里巴巴中间件

阿里云 云原生 函数计算 FC

Apache Kyuubi 高可用的云原生实现

移动云大数据

高可用 云原生 Kyuubi

代码注释的艺术,优秀代码真的不需要注释吗?

阿里巴巴中间件

阿里云 代码 技术分享

Websocket 10分钟快速入门

领创集团Advance Intelligence Group

websocket

Seata 企业版正式开放公测

阿里巴巴中间件

阿里云 云原生 seata

多云管理平台和运维管理平台有什么区别?两者一样吗?

行云管家

云计算 多云管理 云管理

web前端培训 SCSS 使用技巧总结分享

@零度

前端开发 scss

百问百答第41期:应用性能探针监测原理-Java探针

博睿数据

智能运维 博睿数据 性能检测

工赋开发者社区 | 风口上的低代码,技术人需要考虑哪些?

工赋开发者社区

低代码 低代码开发 低代码开发平台

文章:使用Spring框架和AOP实现动态路由_Java_霍太稳@极客邦科技_InfoQ精选文章