Вот способ интегрировать Springboot в Ehcache для достижения ограничения времени ожидания оплаты. Конкретный контент заключается в следующем:
<dependency> <groupid> net.sf.ehcache </groupid> <artifactid> ehcache-core </artifactid> <sersive> 2.6.11 </version> </depertion>
Введите зависимость ehcache в файле POM
Храните файл ehcache.xml под классом.
Указано в Application.xml:
Spring: Cache: JCache: Config: ClassPath: ehcache.xml
Класс аннотации @enablecaching
Реализовать основной код
/** Запишите временной метки пользовательского платежа*/public void pinuser (Object UserKey) Throws Exception {cache cache = Manager.getCache (Cachename); Element = cache.get (userkey); if (element == null) { /*Если платежная запись пользователя не найдена, запись кэшируется, а затем продолжайте* / element newe = new Element (userKey, new Date (). getTime ()); cache.put (newe); } else { /*Если есть запись платежей пользователя, следует бросить исключение, и соответствующая информация пользователя должна быть вызвана* / long intime = (long) element.getObjectValue (); long timetowait = (getTimetolive () - (new Date (). getTime () - intime)/1000); // Время для ожидания предлагается бросить новое исключение (string.format («Ему все еще нужно ждать %s -секунд», String.valueof (timetowait))); }}/ * * Удалить временную метку платежа пользователя (этот метод используется для вручную удалить запись платежа пользователя, когда внутренний платеж не удастся в системе, чтобы не повлиять на попытку пользователя) * Обычно этот метод не должен вызывать, но должен быть автоматически очищен после того, как Cache Timeout */public void -unpinuser (use use use use) {cache cache = ghate.getame); cache.remove (userkey);}/ * * Получите конфигурацию кэша, чтобы преобразовать время, которое пользователю все еще нужно ждать, что дает более дружественную подсказку времени ожидания. */private long getTimetolive () {cache cache = Manager.getCache (cachename); return cache.getCacheConfiguration (). getTimetoliveSeconds ();}использовать
Просто позвоните в PayToken.getInstance().pinUser(user.getKey()) где вызывается интерфейс платежа. Если исключение брошено, это означает, что интервал оплаты слишком мал. В то же время, если есть дополнительные операции с данными, выбрасывание исключения также может вызвать операцию отката.
Неразумно, что по -прежнему нужно, чтобы пользователь ждал, если выполнение не удастся по системным причинам. Следовательно, он добавляется для удаления записей пользователя PayToken.getInstance().unPinUser(user.getKey()) .
Суммировать
Выше приведено метод интеграции EHCache Springboot для достижения ограничений с время ожидания платежей, которые редактор представил вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!