★1概念:.利用与目标类具有相同接口的类,来实现同样功能。
2.好处:可以增加一些功能,而不去改原代码。
3.AOP:面向方面的编程,利用代理来实现
★★★4.什么是动态代理:
JVM可以在运行期动态生成出类的字节码,这种动态生成的类往往用来做代理
5.CGLIB库可以动态生成一个类的子类(当目标类没有实现接口时使用)
6.代理类要实现额外功能时能在四个位置加上系统功能代码
1.前2.后3.前后4.catch块中
★★★7.怎么实现动态代理
Proxy.newProxyInstance(classLoader loader:类加载器
Class<?>[] interface:需要实现的接口列表
InvocationHandler h):指派方法调用的调用处理程序(匿名内部类)
(返回相应的基本包装类的实例)
new InvocationHandler (){ Object proxy :在其调用 方法的代理实例
Method method:对应于在代理实例上调用方法的Method实例
Object[] args :传入的参数。
(自己总结不知道对不对):动态代理机制核心在于实现InvocationHandler接口,用指定方法调用的处理方法覆盖掉invoke()方法
用Proxy.newProxyInstance()来创建代理实例
当代理 实例调用方法时,将对方法进行编码并将其指派到它的调用处理程序的invoke()方法。