Ich glaube, jeder kennt die Konzepte von Interceptors und Abschnitten. In diesem Artikel werden wir uns mit der Verwendung von Abfang- und Abschnitten auf dem Anwendungsmarkt befassen.
Verwendung von Interceptor: Jedes Mal, wenn eine Anforderung empfangen wird, wird die Methode in diesem Interceptor aufgerufen. Wenn die Prehandle -Methode wahr zurückgibt, bedeutet dies, dass der entsprechende Controller weiterhin aufgerufen wird. Wenn falsch zurückkehren,
public class CheckloginInterceptor implementiert Handlerinterceptor {private logger logger = logger.getLogger (checkLoginInterceptor.class); private statische String token_valid_msg; Codemessage.token_valid));} public boolean prehandle (httpServletRequest Request, httpServletResponse -Antwort, Objekthandler) löst eine Ausnahme aus {//Request.getMethod Get Anfrage GET, Post usw. Wenn ("Optionen" .Ems.GetMethod ()))))) {// //. response.setheader ("Access-Control-Blow-Origin", "*"); // Antworttyp Response X-Custom-Header "); Antwort. request.getRequestURI();if(method.equals("/ams/fileUpload")) {return true;}if(StringUtil.isEmpty(userName) || StringUtil.isEmpty(userToken)) {result = false;} else {result = TokenUtil.validToken(userName, userToken);}// token verification failed if(!result) {response.setContentType ("text/html; charset = utf-8"); Antwort.getWriter (). print (token_valid_msg); Antwort.getWriter (). Flush (); Antwort.getwriter (). Close (); ModelAndView modelAndView) löst Ausnahme aus {} public void Aftercompletion (HttpServletRequest -Anforderung, httpServletResponse -Antwort, Objekthandler, Ausnahme ex) Ausnahme {}}Verwendung von Abschnitten:
// Schlechte Beschneidungsbenachrichtigung: Sie müssen Parameter des Proxy -Joinpoint -Typs tragen // Der gesamte Prozess der Surround -Benachrichtigung ähnelt dem dynamischen Proxy: Parameter des ProgradingjoInpoint -Typs können bestimmen, ob die Zielmethode ausgeführt werden muss. @Around ("Execution (*com.sowell.controller.*Controller.*(..)") öffentliches Objekt um Methode (ProveringJoInpoint PJD) {Object result = null; String methodname = pjd.getSignature (). {logger.info("request channels begin, param{pageNum:" + methodName + ", pageSize:" + args);//Previous notification, indicating that the code before this will call result = pjd.proceed();recordOprationLog(result, methodName, result);//Post notification logger.info("Arround:The method "+ methodName+" ends");}catch (Throwable e) {e.printstacktrace (); // Ausnahme -Benachrichtigung logger.Error ("Arrunde: Die Methode"+MethodName+"Ausnahme:"+e); // neue RunTimeexception (e); // Wenn die Ausnahme nicht ausgeworfen wird, wird die Ausnahme durch das obige und dann ausführende Ergebnis. "+ methodName+" endet mit dem Ergebnis "+ Ergebnis); Rückgabeergebnis;}Zusammenfassen
Das obige ist die vollständige Erläuterung der detaillierten Erläuterung der Verwendung von Beispielen von Java -Interceptors und -abschnitten auf dem Anwendungsmarkt. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!