idpt-plugin — это инструмент для обеспечения идемпотентности интерфейсов, основанный на Spring. В случае, когда использование бизнес-данных для обеспечения идемпотентности затруднено, возможно потребуется добавить дополнительную таблицу для обеспечения идемпотентности (встречалось при использовании DDB). В таких случаях можно использовать универсальный плагин для обеспечения идемпотентности, что будет более удобным.
<dependency>
<groupId>com.kvn.idpt</groupId>
<artifactId>idpt-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
Добавьте аннотацию @EnableIdptTransactional в класс запуска Spring Boot Пример: MainApplication.java
Используйте аннотацию @IdptTransactional(biz = "идентификатор бизнес-процесса", key = "ключ идемпотентности, поддерживающий spEL") в методах, требующих идемпотентности Пример: JobInfoServiceImpl.java## Пример
@IdptTransactional(biz = "addJob4", key = "#jobInfo.code")
@Transactional
@Override
public JobInfo addAndReturn(JobInfo jobInfo) {
log.info("------------------addAndReturn, jobInfo={}", jobInfo);
jobInfoDao.add(jobInfo);
return jobInfo;
// throw new RuntimeException("Произошла ошибка!");
}
При первом вызове метода addAndReturn()
информация об идемпотентности будет записана в таблицу _idempotent. При последующих вызовах (2~n) будет возвращен кэшированный результат из таблицы идемпотентности.Примечания:
a. Комбинация biz + key уникально идентифицирует запись идемпотентности
b. key поддерживает spEL
c. Вставка записи идемпотентности и выполнение бизнес-метода находятся в одном транзакте
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )