1 Sesuaikan anotasi
@Target(value = { ElementType.TYPE, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) public @interface CacheNullify { boolean value = true; }
2 logik
@Slf4j @Aspect @Component public class CacheNullifyHandler { @AfterReturning("@annotation(com.xxx.CacheNullify)") public void afterReturning() { log.info("走你"); CacheServiceUtil.delUserInfoCache(); } }
@annotation
: Apa yang berikut ialah anotasi yang ingin anda tingkatkan (kaedah beranotasi Anda boleh menulis nama anotasi secara langsung, tetapi untuk mengelakkan pertindihan). daripada nama Tulis laluan penuh sebanyak mungkin
@AfterReturning
: Dicetuskan apabila kaedah tersebut dilaksanakan dan kembali berjaya
@After
: Dicetuskan selepas kaedah selesai (Termasuk penyiapan pelaksanaan, atau pengecualian yang dilemparkan)
3 Gunakan
untuk menambah anotasi @CacheNullify. mengenai kaedah yang perlu dipertingkatkan
Mula-mula faham konsep asas dan penggunaan aspek dan anotasi tersuai
AOP ialah singkatan daripada Pengaturcaraan Berorientasikan Aspek , bermaksud: pengaturcaraan berorientasikan aspek, teknologi yang mencapai penyelenggaraan bersepadu fungsi program melalui pra-penyusunan dan agen dinamik semasa masa jalan.
AOP ialah penerusan OOP, tempat hangat dalam pembangunan perisian, kandungan penting dalam rangka kerja Spring dan paradigma terbitan pengaturcaraan berfungsi.
AOP boleh digunakan untuk mengasingkan pelbagai bahagian logik perniagaan, dengan itu mengurangkan gandingan antara pelbagai bahagian logik perniagaan, meningkatkan kebolehgunaan semula program dan meningkatkan kecekapan pembangunan.
Aspek (aspek)
Pengisytiharan aspek adalah serupa dengan kelas dalam Java Statement, Aspect akan mengandungi beberapa Pointcuts dan Nasihat yang sepadan.
Titik sendi (titik sambungan)
merujuk kepada titik yang dipintas pada musim bunga, titik ini merujuk kepada kaedah.
Pointcut (pointcut)
mewakili set titik bersama, yang sama ada digabungkan melalui perhubungan logik Bersama, atau tertumpu melalui kad bebas, ungkapan biasa, dsb., ia menentukan tempat Nasihat yang sepadan akan berlaku.
Nasihat (peningkatan/pemberitahuan)
Nasihat mentakrifkan perkara yang harus dilakukan oleh titik program dalam Operasi Pointcut. ia menggunakan sebelum, selepas dan sekitar untuk membezakan kod yang dilaksanakan sebelum, selepas atau bukannya setiap titik bersama.
Pengenalan
Pemberitahuan khas yang boleh ditambah secara dinamik tanpa mengubah suai kod sumber Beberapa kaedah.
Sasaran (objek sasaran)
Objek sasaran yang dijalin menjadi Nasihat.
Anyaman
Proses menyambungkan Aspek ke objek lain dan mencipta objek Nasihat
Anotasi ialah metadata yang boleh ditambahkan pada kod sumber Java Kaedah, kelas, parameter dan pakej semuanya boleh diubah suai dengan anotasi.
Anotasi boleh dianggap sebagai tanda khas yang boleh digunakan pada kaedah, kelas, parameter dan pakej Program ini boleh mengesan tanda ini dan melakukan beberapa pemprosesan khas semasa menyusun atau berjalan.
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface MyAnnotation { String value() default""; }
Analisis gubahan anotasi di atas
awam: pengubah suai
Pengubah suai akses mestilah awam, jika tidak ditulis, ia lalai kepada awam
@antara muka: Kata kunci
Kata kunci ialah @interface; sebagai contoh, MyAnnotaion di atas ialah nama anotasi
nilai: elemen jenis anotasi
elemen jenis anotasi ialah Kandungan anotasi, tandakan parameter mengikut keperluan, seperti nilai anotasi di atas
tetapi analisis yang teliti juga termasuk empat anotasi bermula dengan; @ @Target, @Retention, @Inherited, @Documented ) Ini ialah empat meta-anotasi yang mendasari, anotasi yang menganotasi anotasi lain
@Target: digunakan untuk menerangkan skop penggunaan anotasi, tempat anotasi boleh digunakanJenis sasaran Penerangan
Digunakan pada kelas, antara muka (termasuk jenis anotasi), penghitungan
Digunakan pada Sifat (termasuk pemalar dalam penghitungan)
ElementType.TYPE
Digunakan pada kaedah
ElementType.FIELD
Digunakan pada parameter formal kaedah
ElementType.METHOD
Digunakan pada pembina
ElementType.PARAMETER
Digunakan pada pembolehubah setempat
ElementType.CONSTRUCTOR
Digunakan pada jenis anotasi
ElementType.LOCAL_VARIABLE
Digunakan pada pakej
Nota: Contohnya, @Target(ElementType.METHOD), anotasi bendera digunakan pada kaedah, tetapi jika kita meletakkan bendera anotasi pada kelas, ralat akan dilaporkan
@Pengekalan: Menunjukkan kitaran hayat anotasi
Jenis kitaran hayat Penerangan
RetentionPolicy.SOURCE
Ia dibuang semasa kompilasi dan tidak disertakan dalam fail kelas
RetentionPolicy.CLASS
dibuang apabila JVM dimuatkan dan disertakan dalam fail kelas Nilai lalai ialah
RetentionPolicy.RUNTIME
yang dimuatkan oleh JVM dan disertakan dalam fail kelas , boleh diperolehi pada masa jalan
@Inherited: Ia adalah anotasi tanda menerangkan bahawa jenis beranotasi tertentu diwarisi. Jika jenis anotasi yang diubah suai dengan @Inherited digunakan untuk kelas, anotasi ini akan digunakan untuk subkelas kelas.
@Didokumentasikan: Menunjukkan bahawa elemen yang ditandakan oleh anotasi ini boleh didokumenkan oleh Javadoc atau alatan yang serupa
Atas ialah kandungan terperinci Apakah kaedah untuk peningkatan aspek tersuai java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!