阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

评论

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

Kotlin学习手记--泛型、泛型约束、泛型型变,天呐

android 程序员 移动开发

JNI 与 NDK 入门(一),设计思想与代码质量优化+程序性能优化+开发效率优化

android 程序员 移动开发

Kotlin + 协程 + Retrofit ,携程Android面试题

android 程序员 移动开发

贝壳Flutter瘦身实践

贝壳大前端技术团队

flutter 瘦身 for web

Kotlin-编程核心基石—高阶函数,androidrom定制

android 程序员 移动开发

Kotlin协程它不香吗?,kotlin开发游戏

android 程序员 移动开发

lambda表达式(3)-shawn,挑战大厂重燃激情

android 程序员 移动开发

Jetpack Compose 1,阿里P8架构师Android大厂面试题总结

android 程序员 移动开发

Jetpack 之 LifeCycle 组件使用详解,android开发书籍

android 程序员 移动开发

Jetpack-在数据变化时如何优雅更新Views数据,ffmpeg音视频开发实战6下载

android 程序员 移动开发

Kotlin-源码里成吨的-noinline-和-crossinline-是干嘛的?

android 程序员 移动开发

Kotlin(五)深入理解Kotlin类与接口,androidndk开发视频

android 程序员 移动开发

博睿数据“智能体验运营,释放商业潜能”催化剂项目获TM Forum创新方案最佳实施奖

博睿数据

Jetpact Compose状态管理简单理解,android设计模式的应用场景

android 程序员 移动开发

Kotlin的自定义View,实现带弧形的进度条,androidjetpack详解

android 程序员 移动开发

LeakCanary源码学习二:LeakCanary,sw实战营文件下载

android 程序员 移动开发

LeakCanary源码分析以及ContentProvider的优化方案,android移动开发

android 程序员 移动开发

入选《2021爱分析·区域性银行数字化厂商全景报告》,网易云信助力南京银行打造转型标杆

网易云信

人工智能 金融行业

Kotlin学习手记——注解(1),2021年字节跳动74道高级程序员面试

android 程序员 移动开发

Kotlin学习手记——注解,flutter下拉加载

android 程序员 移动开发

Kotlin系列三:空指针检查,万字长文总结Android多进程

android 程序员 移动开发

Jetpack Compose和View的互操作性,这个回答让我错失offer

android 程序员 移动开发

Kotlin(1) lambda表达式和高阶函数操作符,android软件开发基础

android 程序员 移动开发

Kotlin-新版来了,支持跨平台!,android热修复实现

android 程序员 移动开发

Kotlin下的5种单例模式,一招教你看懂Netty

android 程序员 移动开发

Kotlin写一个解释器(2)---语法分析,安卓项目开发范例大全

android 程序员 移动开发

Jetpack组件---ViewModel 概览,android高级面试2020

android 程序员 移动开发

Kotlin 协程和 Android SQLite API 中的线程模型,嵌入式系统工程师面试

android 程序员 移动开发

Kotlin 插件的落幕,ViewBinding 的崛起,音视频开发工程师

android 程序员 移动开发

Kotlin 的协程用力瞥一眼,大厂架构师经验分享

android 程序员 移动开发

最新消息!旺链科技加入庙行镇“乐创助企联盟”

旺链科技

区块链 产业区块链

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