千家信息网

JDK动态代理demo

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,1,创建一个UserService类:public interface UserService { public String getTheName(int id);
千家信息网最后更新 2025年02月02日JDK动态代理demo

1,创建一个UserService类:

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

2,创建实现类UserServiceImpl

public class UserServiceImpl implements UserService {        @Override        public String getTheName(int id) {             return "小风";          }        @Override        public 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;      }          @Override        public 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));        }        }


0