Handlermapping ของ Spring รองรับ Interceptor และ Interceptor จะต้องใช้อินเตอร์เฟส HandlerInterceptor มี 3 วิธีต่อไปนี้ในอินเทอร์เฟซนี้:
1. โปรเซสเซอร์ prehandle () เรียกว่าก่อนการดำเนินการ วิธีการส่งคืนจริงเพื่อดำเนินการโทรหาตัวดักหรือโปรเซสเซอร์อื่น ๆ ต่อไป ส่งคืนเท็จเพื่อระบุกระบวนการหยุดชะงัก ตัวดักจับและโปรเซสเซอร์ที่ตามมาจะไม่ถูกดำเนินการอีกต่อไป
2. หลังจากประมวลผล Postthandle () ถูกเรียกใช้งานแล้วมันจะถูกเรียกก่อนที่จะดำเนินการมุมมอง ในเวลานี้ข้อมูลโมเดลข้อมูลหรือมุมมองจะถูกประมวลผลผ่านวัตถุ ModelAndView
3. เรียกหลังจากกระบวนการทั้งหมดของการเสร็จสิ้น () ตัวอย่างเช่นในการตรวจสอบประสิทธิภาพเราสามารถบันทึกเวลาสิ้นสุดและส่งออกเวลาที่ใช้ที่นี่และเรายังสามารถเขียนการทำความสะอาดทรัพยากรได้ที่นี่ แต่วิธีการติดตามจะถูกดำเนินการเฉพาะเมื่อ prehandle () ส่งคืนจริง
คลาสสาธารณะ SomeInterceptor ใช้ HandlerInterceptor {Public Boolean Prehandle (httpservletRequest REQ, httpservletResponse resp, handler วัตถุ) โยนข้อยกเว้น {// โปรเซสเซอร์ todo ถูกเรียกก่อนการดำเนินการส่งคืนจริง; } โมฆะสาธารณะ Posthandle (HttpservletRequest REQ, httpservletResponse resp, handler วัตถุ, modelandview mv) โยนข้อยกเว้น {// โปรเซสเซอร์ todo เรียกว่าหลังจากการดำเนินการส่งคืนจริง; } โมฆะสาธารณะ Aftercompletion (httpservletrequest REQ, httpservletResponse resp, handler วัตถุ, ข้อยกเว้น e) โยนข้อยกเว้น {// โทรหลังจากสิ่งที่ต้องทำเสร็จแล้ว}}}Interceptor ที่กำหนดเองนี้ใช้อินเตอร์เฟส HandlerInterceptor และใช้วิธีการทั้งหมดในส่วนต่อประสาน หากคุณต้องการใช้วิธีการบางอย่างเท่านั้นคุณสามารถสืบทอด HandlerInterceptorAdapter ได้
การกำหนดค่าสกัดกั้น
<MVC: interceptors> <mvc: interceptor> <mvc: path mapping = "/org/*"/> <mvc: exclude-mapping path = "/login/*"/> <bean/> </mvc: interceptor> </mvc: interceptors>
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการวิเคราะห์รหัสของรหัสอินเตอร์เฟสสปริงสปริงฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!