Groovy 的元对象协议为我们修改所创建对象的核心行为提供了单一的联系点。John McClean 在本文中展示了如何使用 Groovy 的 MOP 来执行无需代理或字节码操纵的 AOP 拦截,也展示了在 Ruby 和其他动态语言中相同做法也是可行的。
Cedric Beust 将面向方面编程(AOP)描述为“保留少数开发内行特权的一个绝佳主意”。但对一些人来说,即便使用 Spring 和 JBoss,入门的门槛依旧太高。幸运的是,这正是动态语言能够给予帮助的领域。它们为闯向 AspectJ 这座红灯之前的实验和学习提供了一个缓和的练习坡地,而且也依靠它们自己能力提供了一个高生产率的工作环境。Java 开发者甚至无需离家太远就可得到它们。
Groovy,这门有着与 Java 类似语法的 JVM 动态语言,突变出令人难忘的、可以轻而易举地模拟 AOP 行为的强大特性。在 Groovy 中要实现 AOP 功能,我们机不需要使用框架来修改类的字节码,也不需要为类动态地创建代理,简单之极。
本文描述的这些例子是迈向 AOP 全功能旅程的第一步。尚未实现的是 exception advice,对每个方法多 advice 支持(包括 around 的 advice 链)和应用 Aspect 到对象的集中化支持。作者希望本文已经示范了:只需相对极少的努力,我们可以走得非常远。
阅读全文: Groovy 无痛 AOP 之旅
评论