ฉันเชื่อว่าทุกคนคุ้นเคยกับแนวคิดของการสกัดกั้นและส่วนต่างๆ ในบทความนี้เราจะดูการใช้งานของตัวดักและส่วนต่างๆในตลาดแอปพลิเคชัน
การใช้ interceptor: ทุกครั้งที่ได้รับคำขอวิธีการในการดักจับนี้จะถูกเรียก หากวิธีการ prehandle ส่งคืนจริงหมายความว่าคอนโทรลเลอร์ที่เกี่ยวข้องจะยังคงถูกเรียก หากส่งคืนเท็จ
Public Class DesactLogInInterceptor ใช้ HandlerInterceptor {Logger ส่วนตัว Logger = logger.getLogger (checkloginInterceptor.class); สตริงคงที่ส่วนตัว token_valid_msg; คงที่ {token_valid_msg = jsonutil.writeobject2json codemessage.token_valid));} บูลีนสาธารณะ prehandle (httpservletrequest Request, httpservletResponse การตอบสนอง, ตัวจัดการวัตถุ) โยนข้อยกเว้น {//request.getMethod รับคำขอได้รับการโพสต์ ฯลฯ ถ้า ("ตัวเลือก" Response.Setheader ("การควบคุมการควบคุม-Ollow-Origin", "*"); // ประเภทการตอบสนองการตอบสนอง Setheader ("การควบคุมการควบคุม-อนุญาต-วิธีการ", "โพสต์, รับ, ตัวเลือก, ลบ"); // การตอบสนองการตอบสนอง X-Custom-header "); Response.SetStatus (204); return true;} // รับข้อมูลที่ได้จาก header string username = request.getheader (CommonConsts.param_user_name); string usertoken = request.getHeader request.getRequesturi (); ถ้า (method.equals ("/ams/fileupload")) {return true;} ถ้า (stringutil.isempty (ชื่อผู้ใช้) || stringutil.isempty (usertoken)) {result = false; {Response.SetContentType ("text/html; charset = utf-8"); response.getWriter (). พิมพ์ (token_valid_msg); Response.getWriter (). flush (); Response.getWriter () ModelAndView ModelAndView) พ่นข้อยกเว้น {} โมฆะสาธารณะ fterncompletion (คำขอ httpservletRequest, การตอบสนอง httpservletResponse, ตัวจัดการวัตถุ, ข้อยกเว้น ex) โยนข้อยกเว้น {}}การใช้ส่วน:
// การแจ้งเตือนการเข้าสุหนัตที่ไม่ดี: คุณต้องพกพาพารามิเตอร์ของการดำเนินการ joinpoint ประเภท // กระบวนการทั้งหมดของการแจ้งเตือนรอบทิศทางคล้ายกับพร็อกซีแบบไดนามิก: พารามิเตอร์ของการดำเนินการ joinpoint ประเภทสามารถกำหนดได้ว่าจะดำเนินการวิธีการเป้าหมาย // การแจ้งเตือนรอบทิศทางต้องมีค่าส่งคืนและค่าผลตอบแทนเป็นค่าผลตอบแทนของวิธีการเป้าหมาย @Around ("Execution (*com.sowell.controller.*คอนโทรลเลอร์*(.. ))") วัตถุสาธารณะรอบเมธอด (ดำเนินการ joinpoint pjd) {object result = null; String methodName = pjd.getSignature () getName (); Object args = arrays.aslist (pjd.get. ); {logger.info ("ช่องคำขอเริ่มต้น, param {pagenum:" + methodname + ", pagesize:" + args); // การแจ้งเตือนก่อนหน้า, ระบุว่ารหัสก่อนสิ่งนี้จะเรียกผลลัพธ์ = pjd.proceed (); recordoprationlog e) {e.printstacktrace (); // exception notification logger.error ("arround: method"+methodname+"เกิดขึ้นข้อยกเว้น:"+e); // โยน runtimeException ใหม่ (e); // หากข้อยกเว้นไม่ได้ถูกส่งไปยัง logger.info ("arround: method"+ methodname+ "ลงท้ายด้วยผลลัพธ์"+ ผลลัพธ์); คืนผลลัพธ์;}สรุป
ข้างต้นเป็นคำอธิบายทั้งหมดของคำอธิบายโดยละเอียดของตัวอย่างการใช้งานของตัวดักจับ Java และส่วนต่างๆในตลาดแอปพลิเคชัน ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!