比如windows桌面的快捷方式,你在访问时其实访问到的是快捷方式指向的地址,这个快捷方式就相当于一个代理服务器,在你访问后执行了其中的定位效果,比如我们开发一个接口,但是我们不想让其他人直接访问,我们加一个代理,也就是在外面再封装一层,其他人只能通过代理器访问,如果我们想做一些限制,比如某些ip不能访问,那么直接在代理器中增加限制即可,而不需要更改原接口.
那什么是动态代理呢?在代理前边加上动态两个字就说明代理器不是一开始就有的,是随需求动态生成的,还是接着上面的例子,Windows桌面你可以看到很多的快捷方式的图标,你明明没有去创建这些快捷方式,这些快捷方式是哪来的呢?其实就是动态生成的,在你安装软件的时候有些应用会询问你是否创建快捷方式,当然有很多也是默认生成的.你可以把这些动态生成的快捷方式理解为一种动态的代理模式.
在java中你可以理解为你开发了一个接口,然后想创建一个代理器,代理器的目标是某个ip进来就禁止访问,但是你后来想增加几个禁止访问的ip,或者你想干脆增加一些其他的方法,这个时候你要去改代理器,这就麻烦了,每次要改需求的时候就要去改代理器,你就想能不能我每次动态生成一个代理器满足我的需求,于是就有了动态代理.