Berikut adalah cara untuk mengintegrasikan Springboot ke dalam Ehcache untuk mencapai batas waktu tunggu pembayaran. Konten spesifiknya adalah sebagai berikut:
<dependency> <GroupId> net.sf.ehcache </groupid> <ArTifactId> ehcache-core </artifactid> <version> 2.6.11 </version> </dependency>
Memperkenalkan ketergantungan EHCACHE dalam file POM
Simpan file ehcache.xml di bawah ClassPath.
Ditentukan dalam application.xml:
Spring: Cache: JCache: Config: ClassPath: Ehcache.xml
Anotasi kelas @enablecaching
Menerapkan kode inti
/** Rekam timestamp pembayaran pengguna*/public void pinuser (objek userkey) melempar pengecualian {cache cache = manager.getCache (cacheName); Elemen elemen = cache.get (userkey); if (element == null) { /*Jika tidak ada catatan pembayaran pengguna yang ditemukan, catatan di -cache dan kemudian lanjutkan* / elemen newe = elemen baru (userkey, new date (). gettime ()); cache.put (newe); } else { /*Jika ada catatan pembayaran pengguna, pengecualian harus dilemparkan dan informasi yang sesuai pengguna harus diminta* / long intime = (long) element.getObjectValue (); long timeTowait = (getTimetolive () - (tanggal baru (). getTime () - intime)/1000); // Waktu untuk menunggu diminta melempar pengecualian baru (string.format ("Masih perlu menunggu %s detik", string.ValueOf (timeToWait))); }}/* * Delete the timestamp of the user's payment (this method is used to manually remove the user's payment record when the internal payment fails in the system, so as not to affect the user's attempt again) * Normally, this method should not be called, but should be automatically cleared after the cache timeout*/public void unPinUser(Object userKey) { Cache cache = manager.getCache(cacheName); cache.remove (userkey);}/ * * Dapatkan konfigurasi cache untuk mengonversi waktu pengguna masih perlu menunggu, sehingga memberikan waktu tunggu yang lebih ramah. */private long getTimetolive () {cache cache = manager.getCache (Cachename); return cache.getCacheConfiguration (). getTimetoliveseconds ();}menggunakan
Cukup hubungi PayToken.getInstance().pinUser(user.getKey()) di mana antarmuka pembayaran dipanggil. Jika pengecualian dilemparkan, itu berarti interval pembayaran terlalu kecil. Pada saat yang sama, jika ada operasi data tambahan, melempar pengecualian juga dapat memicu operasi rollback.
Adalah tidak masuk akal untuk tetap membutuhkan pengguna untuk menunggu jika eksekusi gagal karena alasan sistem. Oleh karena itu, ditambahkan untuk menghapus catatan pengguna PayToken.getInstance().unPinUser(user.getKey()) .
Meringkaskan
Di atas adalah metode springboot mengintegrasikan EHCACHE untuk mencapai batasan batas waktu pembayaran yang diperkenalkan oleh editor kepada Anda. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!