Go语言能否支持面向切面编程(AOP)的实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2193个文字,预计阅读时间需要9分钟。
您好,大家庭,我是小桥。今天分享的话题是:Go是否能够实现AOP?
背景:有Java同学来写Go,特别喜爱将两者进行对比,经常在技术群里讨论,比如Go能否实现类似Java的AOP。
常见讨论:Go能否实现Java那样的AOP?
结论:Go可以实现事件机制,类似于AOP的功能。
hello~大家好,我是小楼,今天分享的话题是Go是否能实现AOP?
写Java的同学来写Go就特别喜欢将两者进行对比,就经常看到技术群里讨论,比如Go能不能实现Java那样的AOP啊?Go写个事务好麻烦啊,有没有Spring那样的@Transactional注解啊?
遇到这样的问题我通常会回复:没有、实现不了、再见。
直到看了《Go语言底层原理剖析》这本书,开始了一轮认真地探索。
Java是如何实现AOP的AOP概念第一次是在若干年前学Java时看的一本书《Spring实战》中看到的,它指的是一种面向切面编程的思想。注意它只是一种思想,具体怎么实现,你看着办。
AOP能在你代码的前后织入代码,这就能做很多有意思的事情了,比如统一的日志打印、监控埋点,事务的开关,缓存等等。
可以分享一个我当年学习AOP时的笔记片段:
在Java中的实现方式可以是JDK动态代理和字节码增强技术。
JDK动态代理是在运行时动态地生成了一个代理类,JVM通过加载这个代理类再实例化来实现AOP的能力。
字节码增强技术可以多唠叨两句,当年学Java时第一章就说Java的特点是「一次编译,到处运行」。
本文共计2193个文字,预计阅读时间需要9分钟。
您好,大家庭,我是小桥。今天分享的话题是:Go是否能够实现AOP?
背景:有Java同学来写Go,特别喜爱将两者进行对比,经常在技术群里讨论,比如Go能否实现类似Java的AOP。
常见讨论:Go能否实现Java那样的AOP?
结论:Go可以实现事件机制,类似于AOP的功能。
hello~大家好,我是小楼,今天分享的话题是Go是否能实现AOP?
写Java的同学来写Go就特别喜欢将两者进行对比,就经常看到技术群里讨论,比如Go能不能实现Java那样的AOP啊?Go写个事务好麻烦啊,有没有Spring那样的@Transactional注解啊?
遇到这样的问题我通常会回复:没有、实现不了、再见。
直到看了《Go语言底层原理剖析》这本书,开始了一轮认真地探索。
Java是如何实现AOP的AOP概念第一次是在若干年前学Java时看的一本书《Spring实战》中看到的,它指的是一种面向切面编程的思想。注意它只是一种思想,具体怎么实现,你看着办。
AOP能在你代码的前后织入代码,这就能做很多有意思的事情了,比如统一的日志打印、监控埋点,事务的开关,缓存等等。
可以分享一个我当年学习AOP时的笔记片段:
在Java中的实现方式可以是JDK动态代理和字节码增强技术。
JDK动态代理是在运行时动态地生成了一个代理类,JVM通过加载这个代理类再实例化来实现AOP的能力。
字节码增强技术可以多唠叨两句,当年学Java时第一章就说Java的特点是「一次编译,到处运行」。

