在java中对一个方法进行改造有几种方法可以实现,分别是最常用的继承(extends)、动态代理和装饰者模式。继承是最简单也是用的最多的方法,但是还是有一些场景不适用,这个时候就可能会用到动态代理。使用动态代理可以通过两种方式实现:1、使用JDK自带的Proxy实现代理。2、使用第三方类库CGLib实现动态代理。
一、使用Proxy实现动态代理必须是需要代理的类实现了某一个接口,这样才能实现代理
下面介绍两种使用动态代理的方式实现的案例。
首先准备一个接口和两个实现类对这两个实现类分别进行改造
package com.zjp.dao;
/**
* 定义一个接口
* @author zhujunpeng
*
*/
public interface UserDao {
public void addUser();
}
package com.zjp.dao.impl;
import com.zjp.dao.UserDao;
public class UserDaoImpl implements UserDao{
@Override
public void addUser() {
System.out.println("添加用户逻辑。。。。");
}
}
定义一个切点
package com.zjp.aspect;
/**
* 自定义切点
* @author zhujunpeng
*
*/
public class MyAspect {
public void start(){
System.out.println("start----");