本篇文章主要介绍了"《Spring设计思想》AOP设计基本原理",主要涉及到Spring方面的内容,对于软件工程感兴趣的同学可以参考一下:
0、前言Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释A...
0、前言
Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Spring AOP。
1. Java程序运行在JVM中的特征
当我们在某个类Foo中写好了一个main()方法,然后执行java
Foo,你的Java程序之旅就开启了,如下:
public class Foo {
public static void main(String[] args) {
// your codes begins here
}
}
那么在这个执行的过程中,JVM都为你干了什么呢?
当你执行java Foo 的时候,JVM会创建一个主线程main,这个主线程以上述的main()方法作为入口,开始执行你的代码。每一个线程在内存中都会维护一个属于自己的栈(Stack),记录着整个程序执行的过程。栈里的每一个元素称为栈帧(Stack Frame),栈帧表示着某个方法调用,会记录方法调用的信息;实际上我们在代码中调用一个方法的时候,在内存中就对应着一个栈帧的入栈和出栈。
在某个特定的时间点,一个Main线程内的栈会呈现如下图所示的情况:
