java开发必学知识:动态代理
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一句话概括:java动态代理通过反射机制,可在不修改原代码的情况下添加新的功能,应用于多种场景,简单、实用、灵活,是java开发必学知识,本文将对动态代理使用进行详细介绍。 1. 引言 最近开发项目过程中需要使用动态代理来实现功能,趁此机会把动态代理的知识点进行了一次梳理。在java开发过程中,当需要对已有的代码(方法)前后添加新功能,而不想修改或不方便修改原代码的情况下,如需要在执行某个已有的方法前后输出日志,以记录方法执行的记录,这个时候,动态代理就派上用场了。动态代理可以有以下几使用场景: 记录跟踪:对函数执行前后统一输出日志跟踪执行情况 计时:统一对函数执行用时进行计算(前后时间记录之差) 权限校验:统一在函数执行前进行权限校验 事务:统一对函数作为事务处理 异常处理:对某一类函数执行输出的异常进行统一捕获处理 动态切换数据源:多数据源切换或动态添加数据源 动态代理首先是代理,对应的有静态代理,然后是动态代理,在Spring中还有动态代理的应用-AOP(面向切面编程)。本文针对这些内容,梳理了以下几个知识点: 了解代理模式并实现静态代理 针对动态代理,描述它使用到的反射机制,以及JDK、CGLIB两种动态代理的实现 描述如何在在Spring中,使用AOP实现面向切面编程 本文所涉及到的静态代理、反射