การวิจัยหลักในบทความนี้คือรหัสการใช้งานของเวลาดำเนินการของวิธีการบันทึก Spring Boot AOP ดังต่อไปนี้
เพื่อเพิ่มประสิทธิภาพประสิทธิภาพจำเป็นต้องนับเวลาการดำเนินการของแต่ละวิธีก่อน มันลำบากเกินไปที่จะส่งออกบันทึกโดยตรงก่อนและหลังวิธีการ คุณสามารถใช้ AOP เพื่อเพิ่มสถิติเวลา
<การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Aop </artifactid> </deperency>
Spring.aop.auto = true
คุณสมบัติ Spring.aop.auto ถูกเปิดใช้งานโดยค่าเริ่มต้นซึ่งหมายความว่าตราบใดที่มีการแนะนำการพึ่งพา AOP แล้ว @enableaspectJautoproxy ได้รับการเพิ่มโดยค่าเริ่มต้น จำไว้ว่าอย่าเพิ่มข้อมูลที่ไม่จำเป็นเช่น @enableaspectJautoproxy!
@Component@ApassPublic คลาส logaspect {log log สุดท้ายคงที่ = logfactory.getLog (logaspect.class);/*** กำหนดจุดเข้า * คำอธิบาย: * * ~ ครั้งแรก * แสดงตัวดัดแปลงใด ๆ และค่าคืนใด ๆ * ~ ที่สอง * ถูกกำหนดไว้ในแพ็คเกจเว็บหรือแพ็คเกจย่อย * ~ วิธีที่สาม * วิธีใด ๆ * ~ .. ตรงกับจำนวนพารามิเตอร์ใด ๆ */@pointcut ("การดำเนินการ (*com.wedo.stream.service ..*.*(.. ))") โมฆะสาธารณะ logpointcut () {}@org.aspectj.lang.annotation.around ("logpointcut ()") วัตถุสาธารณะ "/t"); Long start = system.currentTimeMillis (); ลอง {object result = joinpoint.proceed (); end long = system.currentTimeMillis (); log.error ("++++++ รอบ"+joinpoint+"/tuse เวลา:" System.currentTimeMillis (); log.error ("++++++ รอบ ๆ "+joinpoint+"/tuse เวลา:"+(end - start)+"ms ยกเว้น:"+e.getMessage ()); โยน e;}}}}}} หลังจากวิธี AOP ไม่สามารถส่งคืนค่าได้อย่างถูกต้อง
วิธีพร็อกซีนี้จะต้องส่งคืนค่ามิฉะนั้นจะไม่มีค่าส่งคืนในรหัส
// นี่เป็นโมฆะสาธารณะที่ผิด doaround (ดำเนินการ joinpoint pointpoint) {} เอกสารของฤดูใบไม้ผลิกล่าวว่า: ส่วน Spring AOP ใช้ JDK Dynamic Proxy หรือ CGLIB เพื่อสร้างพร็อกซีสำหรับวัตถุเป้าหมาย หากเป้าหมายพร็อกซีใช้อย่างน้อยหนึ่งอินเตอร์เฟสจะใช้พร็อกซีไดนามิก JDK อินเทอร์เฟซทั้งหมดที่นำมาใช้โดยประเภทเป้าหมายนี้จะถูกพร็อกซี หากวัตถุเป้าหมายไม่ได้ใช้อินเทอร์เฟซใด ๆ จะสร้างพร็อกซี CGLIB
ค่าเริ่มต้นคือ JDK Dynamic Proxy เปลี่ยนเป็น CGLIB
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับตัวอย่างรหัสเวลาดำเนินการของวิธีการบันทึก Spring Boot AOP ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!