
แสดงให้เห็น
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