Proksi Java mencakup proksi dinamis jdk dan proksi cglib. Di sini kita hanya berbicara tentang proksi dinamis jdk terutama menggunakan mekanisme refleksi java (yaitu paket java.lang.reflect).
Prinsipnya adalah (penyanyi dan manajer adalah contohnya):
Membangun antarmuka publik, seperti: penyanyi antarmuka publik Penyanyi;
Gunakan kelas tertentu untuk mengimplementasikan antarmuka, misalnya: Jay Chou, dia adalah seorang penyanyi, jadi dia mengimplementasikan kelas Singer, kelas MySinger mengimplementasikan Singer
Buat kelas agen, yang merupakan broker di sini. Dia perlu mengimplementasikan kelas InvocationHandler dan menulis ulang metode pemanggilan sehingga ketika sesuatu terjadi dan Anda ingin mencari Jay Chou (kelas beton), Anda harus pergi ke broker (kelas agen) terlebih dahulu. ) untuk menanganinya. Agen sedang memutuskan apakah akan bertemu dengan Anda (apakah akan menjalankan metode ini)
1. Antarmuka penyanyi
abstrak publik batal bernyanyi();
abstrak publik String s();
}
//Mengikat
Ikatan Objek publik(Target objek){
this.target=target;
//Proxy harus dikembalikan
return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), this);
}
//lagi
pemanggilan Objek publik (Proksi objek, Metode metode, Objek[] args)
lemparan Dapat dilempar {
Objek o =null;
System.out.println("Mulai transaksi");
System.out.println("Izin juri");
o = metode.invoke(target, args);//metode eksekusi
System.out.println("Akhiri transaksi");
kembali o;
}
}