JAVA动态代理与AOP

2025-07-30 08:14:31

动态代理在运行期通过接口动态生成代理类,这为其带来了一定的灵活性,

工具/原料

AOP的JAR包

eclipse

1、AOP的各种实现

1、AOP就是面向切面编程,我们可以从以下几个层面来实现AOP

JAVA动态代理与AOP

3、AOP里的公民

1、Joinpoint:拦截点,如某个业务方法Pointcut:Joinpoint的表达式,表示拦截哪些方法。一个Pointcut对应多个JoinpointAdvice:要切入的逻辑Before Advice:在方法前切入After Advice:在方法后切入,抛出异常则不会切入After Returning Advice:在方法返回后切入,抛出异常则不会切入After Throwing Advice:在方法抛出异常时切入Around Advice:在方法执行前后切入,可以中断或忽略原有流程的执行公民之间的关系

JAVA动态代理与AOP

3、4.1.1 动态代理的演示例子演示的是在方法执行前织入一段记录日志的代码,其中Business是代理类LogInvocationHandler是记录日志的切面IBusiness、IBusiness2是代理类的接口Proxy.newProxyInstance是织入器

JAVA动态代理与AOPJAVA动态代理与AOP

6、getProxyClass(loader, interfaces)方法用于获取代理类,它主要做了三件事情:在当前类加载器的缓存里搜索是否有代理类没有则生成代理并缓存在本地JVM里查找代理类getProxyClass(loader, interfaces)方法:

JAVA动态代理与AOP

8、代理类生成过程ProxyGenerator.generateProxyClass()方法的核心代码分析:

JAVA动态代理与AOP
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢