แสดงให้เห็น
1. Cglib agent สามารถเรียกได้ว่าเป็น subclass agent ซึ่งสร้างอ็อบเจ็กต์คลาสย่อยในหน่วยความจำเพื่อขยายการทำงานของอ็อบเจ็กต์เป้าหมาย
ทั้งพร็อกซีแบบคงที่และพร็อกซี JDK จำเป็นต้องมีอ็อบเจ็กต์เพื่อใช้อินเทอร์เฟซ บางครั้งวัตถุพร็อกซีเป็นเพียงวัตถุเดียว และสามารถใช้พร็อกซี Cglib ได้ในขณะนี้
2. Cglib สร้างคลาสพร็อกซีผ่าน Enhancer และใช้วิธีการสกัดกั้นโดยใช้อินเทอร์เฟซ MethodInterceptor
คุณสามารถเพิ่มวิธีการเพิ่มประสิทธิภาพให้กับวิธีการได้ และวิธีการดั้งเดิมสามารถเรียกได้โดยใช้คลาสที่สืบทอดมาของวิธีการสะท้อนหรือคลาส MethodProxy
ตัวอย่าง
TVProxyCglib คลาสสาธารณะใช้ MethodInterceptor { //สร้างวัตถุพร็อกซีสำหรับวัตถุเป้าหมายวัตถุสาธารณะ getProxyInstance(คลาส c){ //1. เครื่องมือเพิ่มประสิทธิภาพคลาสเครื่องมือ = เครื่องมือเพิ่มประสิทธิภาพใหม่ (); //2.ตั้งค่าคลาสหลักenhancer.setSuperclass(c); //3.ตั้งค่าฟังก์ชั่นการโทรกลับenhancer.setCallback(นี่); //4. สร้างคลาสย่อย (วัตถุพร็อกซี) กลับตัวเพิ่มประสิทธิภาพ.สร้าง(); - @แทนที่ การสกัดกั้นวัตถุสาธารณะ (Object o, วิธีการวิธีการ, วัตถุ [] วัตถุ, MethodProxy methodProxy) พ่น Throwable { System.out.println("การเพิ่มประสิทธิภาพ TVProxyFactory..."); วัตถุ object = methodProxy.inurgeSuper (o, วัตถุ); คืนวัตถุ; - -
ข้างต้นคือการใช้ Cglib agent ใน java ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน
คู่มือการเรียนรู้ Java เพิ่มเติม: กวดวิชาจาวา
สภาพแวดล้อมการทำงานของบทช่วยสอนนี้: ระบบ Windows 7, เวอร์ชัน Java 10, คอมพิวเตอร์ DELL G3