Los servidores proxy de Java incluyen el proxy dinámico jdk y el proxy cglib. Aquí solo hablamos del proxy dinámico JDK que utiliza principalmente el mecanismo de reflexión de Java (es decir, el paquete java.lang.reflect).
El principio es (los cantantes y los managers son ejemplos):
Establezca una interfaz pública, como: interfaz pública de cantante Singer;
Utilice una clase específica para implementar la interfaz, por ejemplo: Jay Chou, él es cantante, por lo que implementa la clase Singer, la clase MySinger implementa Singer
Cree una clase de agente, que aquí es el corredor. Necesita implementar la clase InvocationHandler y reescribir el método de invocación para que cuando suceda algo y quiera encontrar a Jay Chou (clase concreta), primero deba ir al corredor (clase de agente). ) para manejarlo. El agente está decidiendo si se reunirá con usted (si ejecutará este método).
1. Interfaz de cantante
canto vacío abstracto público ();
Cadena abstracta pública s();
}
//Unir
Enlace de objeto público (objeto objetivo) {
this.objetivo=objetivo;
//El proxy debe ser devuelto
devuelve Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), esto);
}
//de nuevo
Invocación pública de objeto (proxy de objeto, método de método, argumentos de objeto [])
lanza arrojable {
Objeto o = nulo;
System.out.println("Iniciar transacción");
System.out.println("Permisos de juez");
o = método.invoke(destino, args);//método de ejecución
System.out.println("Finalizar transacción");
volver o;
}
}