Rumah > pangkalan data > Redis > Cara SpringBoot menggunakan AOP+Redis untuk menghalang penyerahan borang berulang

Cara SpringBoot menggunakan AOP+Redis untuk menghalang penyerahan borang berulang

PHPz
Lepaskan: 2023-06-03 18:10:04
ke hadapan
1108 orang telah melayarinya

    Konfigurasikan Redis

    1 Tambah kebergantungan Redis

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    Salin selepas log masuk

    2. Tambah maklumat konfigurasi redis

    rreee

    Konfigurasikan AOP

    1. Anotasi tersuai

    redis:
      host: 127.0.0.1
      port: 6379
      database: 0
      password:
      # 连接超时时间
      timeout: 10s
    Salin selepas log masuk

    2. Aspek AOP

    /**
     * 防止表单重复提交注解
     */
    @Target(ElementType.METHOD) // 注解的作用目标为方法
    @Retention(RetentionPolicy.RUNTIME) // 注解的保留期限为运行时
    public @interface PreventDuplicateSubmission {
        /**
         * 时间(s)
         */
        int time() default 3;
    }
    Salin selepas log masuk

    Dalam kod di atas, kami menggunakan StringRedisTemplate yang disediakan oleh Spring Boot untuk menyambung ke Redis Suntikan objek terus melalui anotasi @Autowired. Dalam anotasi @Around, kami menggunakan kaedah stringRedisTemplate.hasKey() untuk menyemak sama ada permintaan itu sudah wujud dalam Redis Jika ia wujud, pengecualian akan dilemparkan jika ia tidak wujud, stringRedisTemplate.opsForValue().set() kaedah digunakan untuk menetapkan permintaan. Permintaan disimpan dalam Redis dan masa tamat tempoh ditetapkan kepada 3 saat.

    Nota

    Anda perlu memberi perhatian kepada perkara berikut apabila menggunakan permintaan storan Redis:

    • Redis perlu digunakan secara berasingan, jangan gunakan Redis dan aplikasi dalam yang sama pada mesin.

    • Prestasi Redis mungkin merosot berbanding kaedah storan memori, dan ia perlu diuji dan dioptimumkan berdasarkan situasi sebenar.

    • Jika pengecualian berlaku dalam Redis, ia mungkin menjejaskan operasi biasa aplikasi dan mekanisme toleransi kesalahan yang sepadan perlu ditambah.

    • Permintaan storan Redis perlu mengambil kira isu konkurensi, yang boleh diselesaikan menggunakan kunci yang diedarkan Redis.

    • Jika aplikasi memerlukan operasi Redis yang kerap, ia mungkin menyebabkan prestasi Redis menurun Oleh itu, anda perlu memberi perhatian untuk mengoptimumkan konfigurasi dan penggunaan Redis, seperti menggunakan teknologi seperti Redis Pipeline. Meningkatkan prestasi Redis.

    Atas ialah kandungan terperinci Cara SpringBoot menggunakan AOP+Redis untuk menghalang penyerahan borang berulang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    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
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan