JDK动态代理demo

时间:2022-08-20 15:20:02

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));}}


本文出自 “11803850” 博客,请务必保留此出处http://11813850.blog.51cto.com/11803850/1954993