AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

文章:使用 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:501073

评论

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

不一样的面向对象(一)

书旅

php 面向对象

大作业二:总结

zcj

HashMap源码解析

彭阿三

hashmap HashMap底层原理

网易伏羲问鼎全球AI文创大赛:用户可零门槛生产音视频动画

核桃Eason

人工智能 AI 动画 网易

面试官,ThreadLocal 你要这么问,我就挂了!

小傅哥

Java 面试 小傅哥 ThreadLocal 开放寻址

高难度对话读书笔记—认知篇

wo是一棵草

LeetCode题解:83. 删除排序链表中的重复元素,迭代,JavaScript,详细注释

Lee Chen

大前端 LeetCode

软件开发的 5 条核心原则,让工作事半功倍

沉默王二

程序员 软件开发

TensorFlow 篇 | TensorFlow 2.x 基于 Keras 的模型构建

Alex

tensorflow keras model

99%的人都能看懂的分布式系统「补偿」机制

华为云开发者联盟

分布式 高可用 系统

阿里架构师不慎泄露内部互联网架构面试题库。你确定不看一下吗?

小Q

Java 学习 架构 面试 阿里

从 LRU Cache 带你看面试的本质

小齐本齐

算法

线上医疗未来的发展

anyRTC开发者

ios 音视频 WebRTC RTC 安卓

双亲委派模型与 Flink 的类加载策略

Apache Flink

flink

架构师 0 期 | 大数据相关技术

刁架构

架构师训练

动图演示:手撸堆栈的两种实现方法!

王磊

Java 数据结构 算法

架构师训练营第一期-第二周课后-作业一

极客大学架构师训练营

滴滴开源AgileTC:敏捷测试用例管理平台

滴滴技术

开源 滴滴技术 滴滴开源

LeetCode题解:83. 删除排序链表中的重复元素,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

10个常见的软件架构模式

GuoYaxiang

架构模式 软件架构 架构设计

【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?

冰河

MySQL 高可用 主从复制

第二周 框架设计学习总结

蓝黑

极客大学架构师训练营

架构师训练营第一期-第二周课后-作业二

极客大学架构师训练营

学习Java的三个阶段(学习目标+知识点),一起努力吧!

Java架构师迁哥

第13周作业

聊聊布隆过滤器

大头星

极客大学 - 架构师训练营 第二周

9527

C++的匿名函数(lambda表达式)

良知犹存

c++ 编程开发

免费CA证书安装配置与背后原理浅析

陈德伟

Java8 之 Lambda 表达式

hepingfly

Lambda java8 新特性

多端消息推送的设计思考

TaurusCode

Java spring 设计模式 消息推送

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