Rumah  >  Artikel  >  Java  >  Apakah kaedah untuk peningkatan aspek tersuai java?

Apakah kaedah untuk peningkatan aspek tersuai java?

王林
王林ke hadapan
2023-05-03 18:13:071394semak imbas

    Peningkatan aspek tersuai java

    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

    Penggunaan aspek dan anotasi tersuai

    Mula-mula faham konsep asas dan penggunaan aspek dan anotasi tersuai

    Pengenalan kepada AOP

    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.

    Takrifan AOP

    • 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

    Pengenalan kepada anotasi

    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.

    Elemen dan gubahan

    @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

      anotasi meta
    • 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 digunakan

    Jenis 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!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam