第一种:cglib动态代理
首先创建一个接口,存放对象的共同行为
然后创建一个对象
接着去创建一个类,如果不是spring工程,还需要加入相应的jar包cglib
然后去实现MethodInterceptor重写邻面的intercept方法
需要写一个方法去获取动态代理对象,通过enhancer获取父类管理的对象
然后设置回调函数
这是测试类
如果再添加一个新对象则不需要改变代理类;里面的内容
2.静态代理
静态代理就是写死了在代理对象中执行这个方法前后执行添加功能的形式,每次要在接口中添加一个新方法,则需要在目标对象中实现这个方法,并且在代理对象中实现相应的代理方法。
3.JDK动态代理
动态代理是在程序运行时通过反射机制动态创建的
这是代理类代码
测试类代码
总结:三种代理模式各有优缺点和相应的适用范围,主要看目标对象是否实现了接口。以Spring框架所选择的代理模式举例
标签:对象,代理,接口,实现,三种,模式,动态,方法 From: https://blog.csdn.net/wuzhaoyang11/article/details/140304262在Spring的AOP编程中: 如果加入容器的目标对象有实现接口,用JDK代理 如果目标对象没有实现接口,用Cglib代理