1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kkk001-idpt

Клонировать/Скачать
README.md 2.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 04.06.2025 09:05 c73a6b6

idpt-plugin

Описание проекта

idpt-plugin — это инструмент для обеспечения идемпотентности интерфейсов, основанный на Spring. В случае, когда использование бизнес-данных для обеспечения идемпотентности затруднено, возможно потребуется добавить дополнительную таблицу для обеспечения идемпотентности (встречалось при использовании DDB). В таких случаях можно использовать универсальный плагин для обеспечения идемпотентности, что будет более удобным.

Инструкции по использованию

  1. Введение зависимости: (необходимо самостоятельно разместить в приватном репозитории компании)
<dependency>
    <groupId>com.kvn.idpt</groupId>
    <artifactId>idpt-plugin</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
  1. Добавьте аннотацию @EnableIdptTransactional в класс запуска Spring Boot Пример: MainApplication.java

  2. Используйте аннотацию @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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/kkk001-idpt.git
git@api.gitlife.ru:oschina-mirror/kkk001-idpt.git
oschina-mirror
kkk001-idpt
kkk001-idpt
master