Rumah  >  Artikel  >  Java  >  Analisis kaedah penggunaan biasa Spring AOP

Analisis kaedah penggunaan biasa Spring AOP

WBOY
WBOYasal
2023-12-30 13:01:591269semak imbas

Analisis kaedah penggunaan biasa Spring AOP

Untuk memahami kaedah aplikasi biasa AOP dalam Spring, contoh kod khusus diperlukan

Rangka kerja Spring ialah rangka kerja pembangunan aplikasi JavaEE sumber terbuka, di mana Pengaturcaraan Berorientasikan Aspek (pendek kata AOP) merupakan salah satu daripadanya yang penting. ciri . Melalui AOP, kami boleh mengasingkan fungsi biasa dalam sistem daripada kod perniagaan, menyediakan kaedah pengembangan yang tidak mengganggu untuk menambah fungsi baharu tanpa mengubah suai kod asal.

Pada Musim Bunga, terdapat dua cara utama untuk melaksanakan AOP: AOP berasaskan proksi dan AOP berasaskan pengubahsuaian bytecode. AOP berasaskan proksi mencapai peningkatan dengan mencipta objek proksi objek sasaran pada masa jalan, manakala AOP berdasarkan pengubahsuaian kod bait mencapai peningkatan dengan mengubah suai kod bait semasa penyusunan atau masa pemuatan.

Yang berikut akan memperkenalkan tiga kaedah aplikasi biasa AOP pada Musim Bunga, dan memberikan contoh kod khusus.

  1. Sebelum nasihat
    Preadvice ialah pemberitahuan yang dilaksanakan sebelum kaedah dilaksanakan, dan beberapa kerja penyediaan boleh dilakukan sebelum kaedah dilaksanakan. Berikut ialah kod sampel:
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class LoggingAspect {

    @Before("execution(* com.example.service.UserService.addUser(..))")
    public void beforeAddUser() {
        System.out.println("Before adding user...");
    }
}

Dalam kod di atas, kami menggunakan anotasi AspectJ untuk mentakrifkan kelas aspek (Aspek), dan kemudian menggunakan anotasi @Sebelum untuk mentakrifkan kaedah pra-pemberitahuan dalam kelas aspek dipanggil sebelum melaksanakan kaedah addUser UserService.

  1. Selepas nasihat
    Selepas nasihat ialah pemberitahuan yang dilaksanakan selepas kaedah dilaksanakan, dan beberapa pemprosesan seterusnya boleh dilakukan selepas kaedah dilaksanakan. Berikut ialah kod sampel:
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.After;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class LoggingAspect {

    @After("execution(* com.example.service.UserService.addUser(..))")
    public void afterAddUser() {
        System.out.println("After adding user...");
    }
}

Dalam kod di atas, kami menggunakan anotasi AspectJ untuk mentakrifkan kelas aspek (Aspek), dan kemudian menggunakan anotasi @After untuk mentakrifkan kaedah pasca pemberitahuan dalam kelas aspek dipanggil selepas melaksanakan kaedah addUser UserService.

  1. Nasihat sekitar (Nasihat sekitar)
    Nasihat sekitar ialah nasihat yang dilaksanakan sebelum dan selepas kaedah dilaksanakan Ia boleh melakukan beberapa operasi sebelum dan selepas kaedah dilaksanakan, dan boleh mengawal sama ada untuk meneruskan kaedah sasaran. Berikut ialah kod sampel:
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Around;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class LoggingAspect {

    @Around("execution(* com.example.service.UserService.addUser(..))")
    public Object aroundAddUser(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("Before adding user...");
        Object result = joinPoint.proceed(); // 执行目标方法
        System.out.println("After adding user...");
        return result;
    }
}

Dalam kod sampel di atas, kami menggunakan anotasi AspectJ untuk mentakrifkan kelas aspek (Aspek), dan kemudian gunakan anotasi @Around untuk menentukan kaedah pemberitahuan sekeliling dalam kelas aspek. Dalam kaedah pemberitahuan sekeliling, kami mula-mula melakukan beberapa operasi (seperti mencetak log) sebelum kaedah itu dilaksanakan, kemudian memanggil kaedah proceed() ProceedingJoinPoint untuk melaksanakan kaedah sasaran, dan kemudian kami melakukan beberapa operasi (seperti mencetak log) selepas kaedah dilaksanakan.

Melalui tiga kod sampel di atas, kita boleh melihat kaedah aplikasi biasa AOP dalam rangka kerja Spring, dan contoh kod khusus diberikan. Contoh-contoh ini hanyalah puncak gunung ais AOP Terdapat lebih banyak ekspresi titik, jenis aspek, jenis pemberitahuan, dll. yang boleh digunakan dalam aplikasi praktikal. Pemahaman dan kecekapan yang mendalam dalam penggunaan AOP boleh meningkatkan modulariti, kebolehselenggaraan dan kebolehskalaan kod.

Atas ialah kandungan terperinci Analisis kaedah penggunaan biasa Spring AOP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn