JDK动态代理示例

来源:互联网 发布:广西网络培训系统 编辑:程序博客网 时间:2024/06/08 01:26

1,创建UserService类

public interface UserService {public String getTheName(int id);            public Integer getTheAge(int id);  }

2,创建UserServiceImpl实现类

public class UserServiceImpl implements UserService {@Overridepublic String getTheName(int id) {     return "小风";  }@Overridepublic Integer getTheAge(int id) {        return 10; }}
3,创建JDKProxyTest测试类

public class JDKProxyTest implements InvocationHandler {private Object target;    JDKProxyTest() {          super();      }    JDKProxyTest(Object target) {          super();          this.target = target;      }  @Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {        System.out.println("++++++调用方法之前: " + method.getName() + "++++++");          Object result = method.invoke(target, args);          System.out.println("++++++调用方法之后: " + method.getName() + "++++++"+result);          return result;  }public static void main(String[] args) {UserServiceImpl userService = new UserServiceImpl();InvocationHandler handler=new JDKProxyTest(userService);UserService userServiceProxy=(UserService) Proxy.newProxyInstance(userService.getClass().getClassLoader(), userService.getClass().getInterfaces(), handler);System.out.println(userServiceProxy.getTheName(1));System.out.println(userServiceProxy.getTheAge(1));}}






原创粉丝点击