Les proxys Java incluent le proxy dynamique jdk et le proxy cglib. Ici, nous parlons uniquement du proxy dynamique jdk qui utilise principalement le mécanisme de réflexion Java (c'est-à-dire le package java.lang.reflect).
Le principe est (les chanteurs et les managers en sont des exemples) :
Établir une interface publique, telle que : chanteur interface publique chanteur ;
Utilisez une classe spécifique pour implémenter l'interface, par exemple : Jay Chou, il est chanteur, il implémente donc la classe Singer, la classe MySinger implémente Singer
Créez une classe d'agent, qui est le courtier ici. Il doit implémenter la classe InvocationHandler et réécrire la méthode d'invocation de sorte que lorsque quelque chose se produit et que vous souhaitez trouver Jay Chou (classe concrète), vous devez d'abord vous rendre chez le courtier (classe d'agent). ) pour le gérer. L'agent décide s'il doit vous rencontrer (s'il doit exécuter cette méthode).
1. Interface du chanteur
public abstrait void chanter();
chaîne abstraite publique s();
}
//Lier
liaison d'objet public (cible de l'objet) {
this.target=cible ;
//Le proxy doit être remis en place
return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
}
//encore
objet public invoque (proxy d'objet, méthode méthode, arguments Object[])
lance Jetable {
Objet o = nul ;
System.out.println("Démarrer la transaction");
System.out.println("Autorisations du juge");
o = method.invoke(target, args);//méthode d'exécution
System.out.println("Fin de la transaction");
retourner o;
}
}