动态代理:程序运行后代理类与目标类之间的代理关系随之确定,动态代理一般仅具备代理对象。
接口类:
/**
* 主业务接口:本接口中的方法将会被代理增强
* @author WanAkiko
*
*/
public interface ISomeService {
String doFirst();
void doSecond();
}
接口实现类:
import service.ISomeService;
/**
* 目标类:本类将会被代理类增强
* @author WanAkiko
*
*/
public class SomeServiceImpl implements ISomeService {
@Override
public String doFirst() {
System.out.println("执行目标类的doFirst方法!");
return "WanAkiko";
}
@Override
public void doSecond() {
System.out.println("执行目标类的doSecond方法!");
}
}
功能测试类(此处动态代理仅具备代理对象而不具备具体的代理类):
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import service.ISomeService;
import service.impl.SomeServiceImpl;
/**
* 功能测试类
*
* @author WanAkiko
*
*/
public class DynamicProx