Spring AOP是什么? Spring AOP是面向切面编程,将功能代码从业务逻辑代码中分离出来。 它允许程序通过分离的应用业务逻辑与系统级别服务。 程序员只需专注自己的业务逻辑,而不需要管系统级服务。 容器中的对象能享有容器中的公共服务(日志、安全)。 它是如何做到的?(原理) 通过动态代理做到这一点。 用到了代理模式,代理模式是一种静态代理,而动态代理就是利用反射和动态编译将代理模式变成动态的。 得知被代理类后通过反射得知他的一切信息,然后动态编译成代理类的class文件(动态组装成代理类,生成java文件,再编译成class文件)。