Voici un moyen d'intégrer le Springboot dans ehcache pour atteindre la limite de délai d'expiration du paiement. Le contenu spécifique est le suivant:
<dependency> <proupId> net.sf.ehcache </proupId> <Artifactid> ehcache-core </letefactId> <DERNÉRATION> 2.6.11 </DERNIERDS> </ Dependency>
Introduire la dépendance ehcache dans le fichier POM
Stockez le fichier ehcache.xml sous le chemin de classe.
Spécifié dans application.xml:
Spring: Cache: Jcache: Config: ClassPath: ehcache.xml
Annotation de classe @enablecaching
Implémenter le code de base
/ * * Enregistrez l'horodatage du paiement utilisateur * / public void pinUser (objet userKey) lève une exception {cache cache = manager.getCache (cachename); Element element = cache.get (userKey); if (élément == null) {/ * Si aucun enregistrement de paiement de l'utilisateur n'est trouvé, l'enregistrement est mis en cache puis continue * / élément newe = nouvel élément (userKey, new Date (). GetTime ()); cache.put (newe); } else {/ * S'il existe un enregistrement de paiement de l'utilisateur, une exception doit être lancée et les informations correspondantes de l'utilisateur doivent être invitées * / long inime = (long) element.getObjectValue (); long timetowait = (gettimetolive () - (new Date (). gettime () - inmeme) / 1000); // Le temps d'attente est invité à lancer une nouvelle exception (string.format ("il doit encore attendre% s secondes", string.valueof (timetowait))); }} / * * Supprimer l'horodatage du paiement de l'utilisateur (cette méthode est utilisée pour supprimer manuellement l'enregistrement de paiement de l'utilisateur lorsque le paiement interne échoue dans le système, afin de ne pas affecter à nouveau la tentative de l'utilisateur) * Normalement, cette méthode ne doit pas être appelée, mais doit être automatiquement effacée après le délai de cache * / public void UnpinUser (Object UserKey) {Cache Cache = Manager.getCache (cachename); Cache.Remove (UserKey);} / * * Obtenez la configuration du cache pour convertir l'heure à attendre de l'utilisateur, donnant ainsi une invite d'attente plus conviviale. * / private long gettimetolive () {cache cache = manager.getCache (cachename); return cache.getCacheConfiguration (). GettimeToliveSEconds ();}utiliser
Appelez simplement PayToken.getInstance().pinUser(user.getKey()) où l'interface de paiement est appelée. Si une exception est lancée, cela signifie que l'intervalle de paiement est trop petit. Dans le même temps, s'il y a des opérations de données supplémentaires, le lancer d'une exception peut également déclencher une opération de retour.
Il est déraisonnable d'avoir toujours besoin que l'utilisateur attend si l'exécution échoue pour des raisons système. Par conséquent, il est ajouté pour supprimer les enregistrements de l'utilisateur PayToken.getInstance().unPinUser(user.getKey()) .
Résumer
Ce qui précède est la méthode d'intégration de Springboot EHCACH pour réaliser des restrictions de délai d'expiration de paiement que l'éditeur vous a présentées. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!