Je crois que tout le monde connaît les concepts des intercepteurs et des sections. Dans cet article, nous examinerons une partie de l'utilisation des intercepteurs et des sections sur le marché des applications.
Utilisation de l'intercepteur: chaque fois qu'une demande est reçue, la méthode de cet intercepteur sera appelée. Si la méthode de pré-halte renvoie true, cela signifie que le contrôleur correspondant continuera d'être appelé. Si retourne false,
classe publique CheckLoginInterceptor implémente HandlerInterceptor {private logger logger = logger.getLogger (checkLoginInterceptor.class); String static private token_valid_msg; static {token_valid_msg = jsonutil.writeobject2json (new Amsresultvo (codénum.token_valid, CodeMessage.Token_Valid));} Public Boolean Prehandle (HttpServLetRequest Request, HttpServletResponse Response, Handler d'objet) Jette l'exception {//request.getMethod Get Demande est GET, POST, etc. if ("Options" .Equal Response.sethEader ("Access-Control-Allow-Origin", "*"); // Type de réponse Réponse.SetHeader ("Access-Control-Allow-Methods", "Post, Get, Options, Delete"); // Response Header Response.SetHeader ("Access-Control-allow-Headers", "Content-Type, X-requasted-with,,", contenu-type-type, X-ré-with, with-with, X-custom-header "); réponse.setStatus (204); return true;} // obtenez les données obtenues à partir de la chaîne d'en-tête username = request.getheader (CommonConsts.param_user_name); String userKenk request.getRequeSturi (); if (method.equals ("/ ams / fileupload")) {return true;} if (stringUtil.isempty (nom d'utilisateur) || stringUtil.isempty (usertoken)) {result = false;} else {result = tokenutil.validTenk {réponse.setContentType ("text / html; charset = utf-8"); réponse.getWriter (). print (token_valid_msg); réponse.getWriter (). flush (); réponse.getwriter (). clôture ();} résultat de retour;} ModelAndView ModelAndView) lève une exception {} public void afterCompletion (httpservletRequest request, httpservletResponse réponse, handler d'objet, exception ex) lève l'exception {}}Utilisation des sections:
// Bad Circoncision Notification: Vous devez transporter des paramètres du type de joints de procédure // L'ensemble du processus de la notification surround est similaire à la proxy dynamique: les paramètres du type de jointure de procédure peuvent déterminer s'il faut exécuter la méthode cible // La notification surround doit avoir une valeur de retour, et la valeur de retour est la valeur de retour de la méthode cible. @Around ("EXECUTION (* com.sowell.Controller. * Contrôleur. * (..))") Objet public AroundMethod (ProcedingJoinpoint PJD) {objet result = null; String Methodname = pjd.getSignature (). GetName (); Object Args = Arrays.aslist (pjd.getargs ()); // exécuter la méthode cible TRY {logger "" Les canaux commencent, param {pagenum: "+ méthodyname +", pagesize: "+ args); // notification précédente, indiquant que le code avant cela appellera le résultat = pjd.proceed (); RecordoPrationLog (result, méthodyname, result); // publier la notification logger.info (" arrondi: la méthode "+ méthode +" extrémités "); {e.printStackTrace (); // Exception Notification Logger.Error ("Arrond: la méthode" + méthodyname + "se produire l'exception:" + e); // New RuntimeException (e); // Si l'exception n'est pas lancée, l'exception sera capturée par l'inférieur, puis l'exécution, le résultat de la mode. "+ MethodName +" se termine par le résultat "+ résultat); resulation de retour;}Résumer
Ce qui précède est l'explication complète de l'explication détaillée des exemples d'utilisation des intercepteurs et sections Java sur le marché des applications. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!